非常容易学的android笔记5
RecyclerView 功能
实现两个功能,一个是点击了,它出现 “Clicked!wordx”, 一个是按这个 button, 出现 “+ Wordxx”
activity_main.xml
两个功能,一个是recyclerView, 还有一个就是这个 button,这里用的是FloatingActionButton
wordlist_item.xml
这里除了id外,所有的选好都加入了 @style/word_title", 其实就是设置好这个格式。
WordListAdapter.class
- LinkedList
mWordList; - LayoutInflate mInflate;
public class WordListAdapter extends RecyclerView.Adapter<WordListAdapter.WordViewHolder> {
-
RecyclerView 就是一个 类似 CONTAINER 存放所有的 View
-
ViewHolder.ViewHolder 就是存储 View reference的地方
class WordViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
-
ViewHolder.Adapter 就是连接 data 和 View 的中介
public class MyAdapter extends RecyclerView.Adapter
, 重复写三个方法
-
第一个方法 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绑定的目的
-
第二个方法getItemCount(), return mWordList.size()
-
第三个方法onBindViewHolder, 把 ViewHolder和data绑定,不断滑动的时候,这个方法会被多次call
-
ViewHolder里面,要一个 TextView 和 WordListAdapter,绑定
-
重写onClick方法
这里点击了后,出现"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);
}
});