非常容易学的android笔记5

Tue, Dec 20, 2022 One-minute read

RecyclerView 功能

RecyclerView教程

TextView

RecyclerView

实现两个功能,一个是点击了,它出现 “Clicked!wordx”, 一个是按这个 button, 出现 “+ Wordxx”

activity_main.xml

TextView

RecyclerView

两个功能,一个是recyclerView, 还有一个就是这个 button,这里用的是FloatingActionButton

wordlist_item.xml

这里除了id外,所有的选好都加入了 @style/word_title", 其实就是设置好这个格式。

WordListAdapter.class

  • LinkedList mWordList;
  • LayoutInflate mInflate;

public class WordListAdapter extends RecyclerView.Adapter<WordListAdapter.WordViewHolder> {

  1. RecyclerView 就是一个 类似 CONTAINER 存放所有的 View

  2. ViewHolder.ViewHolder 就是存储 View reference的地方

    class WordViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

  3. ViewHolder.Adapter 就是连接 data 和 View 的中介

public class MyAdapter extends RecyclerView.Adapter, 重复写三个方法

  1. 第一个方法 onCreateViewHolder

    public WordListAdapter.WordViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View mItemView = mInflater.inflate(R.layout.wordlist_item, parent, false);
        return new WordViewHolder(mItemView, this);
    }
    
    • 这里就是把这个 Adapter 和 这个wordlist_item.xml的View绑定的目的
  2. 第二个方法getItemCount(), return mWordList.size()

  3. 第三个方法onBindViewHolder, 把 ViewHolder和data绑定,不断滑动的时候,这个方法会被多次call

TextView

ViewHolder

  1. ViewHolder里面,要一个 TextView 和 WordListAdapter,绑定

  2. 重写onClick方法

TextView

ViewHolder

这里点击了后,出现"clicked"的互动,就是这里改写的,

MainActivity.class

需要的三个数值

  • LinkedList mWordList
  • RecyclerView mRecyclerView
  • WordListAdapter mAdapter

// Get a handle to the RecyclerView.

  • mRecyclerView = findViewById(R.id.recyclerview);

// Create an adapter and supply the data to be displayed.

  • mAdapter = new WordListAdapter(this, mWordList);

// Connect the adapter with the RecyclerView.

  • mRecyclerView.setAdapter(mAdapter);

// Give the RecyclerView a default layout manager. 有3个格式LinearLayoutManager、GridLayoutManager、StaggeredGridLayoutManager, 可定制自己的。

  • mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

都绑定好了 设置个 button

  • FloatingActionButton button = findViewById(R.id.fab);

  • button功能,可是一点就加数字功能

 button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int wordListSize = mWordList.size();
                // Add a new word to the wordList.
                mWordList.addLast("+ Word" + wordListSize);
                // Notify the adapter, that the data has changed.
                mRecyclerView.getAdapter().notifyItemInserted(wordListSize);
                // Scroll to the bottom.
                mRecyclerView.smoothScrollToPosition(wordListSize);
            }
        });