給RecycleView初學者:RecycleView的基礎用法和一個Demo
研究了一下午RecyclerView的Adapter寫法。網上看了很多教程好坑,到處都是用自己定義的類看的我云里霧里。。現在總算搞明白了,RecyclerView的比較基礎的入門用法。。
下面給跟我一樣剛接觸的同學寫一下我學寫Adapter時候做的詳盡筆記,希望能幫到看到這篇文章的、和我幾個小時前一樣還在糾結的菜鳥們。
RecycleView的用法主要分三個部分:
1.在你的布局里創建一個RecyclerView,然后創建一個需要在RecyclerView內循環填充的布局
2.寫RecyclerView的Adapter
3.在需要調用RecyclerView的Activity中配置RecyclerView
1.省略
2.RecyclerView的Adapter寫法 (代碼中的注釋已經把我所了解的思路詳盡的介紹清楚了)
//繼承父類
public class SettingsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
//1.對各種需要傳入的數據進行聲明
private Context context;//上下文環境
private String[] settings;/*根據需要更改*///接入數據的類型
//2.構造方法,作為適配器接收參數的入口
public SettingsAdapter(Context context, String[] data/*根據需要更改*/) {
this.context = context;//上下文入口
this.settings = data;//數據入口
}
//4.默認需要實現的方法,負責為Item創建視圖容器,并且返回一個該容器的實例傳給onBindViewHolder方法
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//以下一步:負責實例化待逐條填充的layout,將其轉換為view
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_settings, parent, false);
//以下一步:負責實例化傳入的待填充的view的容器
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
//5.默認需要實現的方法,負責將數據寫入在Item布局的元素里
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
/*針對不同的元素寫入數據,根據需要更改*/
MyViewHolder myViewHolder= (MyViewHolder) holder;
myViewHolder.textViewSetting.setText("settings");
}
//6.告訴適配器一共有多少條數據需要填充
@Override
public int getItemCount() {
return settings.length;
}
//3.viewholder的內部類,用于構建viewholder和其要填充的item中的元素的對象,并且將對象和其中的元素綁定
//總結:將布局的規則用代碼實例化為對象,將布局中的元素用代碼實例化為對象的屬性,方便onBindViewHolder方法進行寫入
class MyViewHolder extends RecyclerView.ViewHolder {
public TextView textViewSetting;/*根據需要更改*///初始化細分布局中的元素
public MyViewHolder(View itemView) {
super(itemView);//這里的itemView指的是細分布局,即需要進行重復構建的布局
textViewSetting = (TextView) itemView.findViewById(R.id.shezhixiang);/*根據需要更改*///布局中的TextView需要填寫
}
}
}
3.為每個RecyclerView創建一個LinerLayoutManager:
LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager(this);
將管理器與RecyclerView綁定:
recyclerView_changgui.setLayoutManager(linearLayoutManager1);
為RecyclerView綁定適配器:
recyclerView_changgui.setAdapter(new SettingsAdapter(this, new String[4]));
來自:http://www.jianshu.com/p/74ad6a002d5b
本文由用戶 Ray87L 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!