1.导入v7包。
app下gradle文件加入
implementation 'com.android.support:recyclerview-v7:28.0.0'
注意版本号应与v7包相同。
2.创建Adapter。
创建自定义Adapter,定义内部类ViewHolder继承自RecyclerView.ViewHolder,
static class ViewHolder extends RecyclerView.ViewHolder{
View fruitView;
ImageView fruitImage;
TextView fruitName;
public ViewHolder(View view){
super(view);
fruitView=view;
fruitImage=(ImageView) view.findViewById(R.id.fruit_image);
fruitName=(TextView) view.findViewById(R.id.fruit_name);
}
}
使Adapter继承自RecyclerView.Adapter<FruitAdapter.ViewHolder>并重写三个必要的方法。
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.music_item,viewGroup,false);
ViewHolder holder = new ViewHolder(view);
holder.musicItemLayout.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Log.d("MusicAdapter", "click item");
}
});
holder.musicMoreImg.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Log.d("MusicAdapter", "click more");
}
});
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
Music music = musicList.get(i);
viewHolder.musicIdText.setText(i);
}
@Override
public int getItemCount() {
return musicList.size();
}
3.在Avtivity中调用:
RecyclerView recyclerView = (RecyclerView)view.findViewById(R.id.music_recycler_view);
LinearLayoutManager layoutManager = new LinearLayoutManager(view.getContext());
recyclerView.setLayoutManager(layoutManager);
MusicAdapter adapter = new MusicAdapter(musicList);
recyclerView.setAdapter(adapter);