来人,代码伺候
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
private Context context;
private List<zone> list;
public RecyclerViewAdapter(Context context, List<zone> list){
this.list = list;
this.context = context;
}
static class ViewHolder extends RecyclerView.ViewHolder{
ImageView myImage;
TextView myactivity;
public ViewHolder(View itemView) {
super(itemView);
myImage = itemView.findViewById(R.id.img_main_recycler);
myactivity = itemView.findViewById(R.id.text_main_recycler);
}
}
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.main_recycler_adapter,null);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder( ViewHolder holder, int position) {
final zone my_zone = list.get(position);
holder.myactivity.setText(my_zone.getName());
holder.myImage.setImageResource(my_zone.getImageId());
}
@Override
public int getItemCount() {
return list.size();
}
}
public class zone {
private String name;
private int imageId;
public zone(int imageId,String name){
this.name = name;
this.imageId = imageId;
}
public String getName(){
return name;
}
public int getImageId(){
return imageId;
}
}
LinearLayoutManager manager = new LinearLayoutManager(context);
manager.setOrientation(RecyclerView.HORIZONTAL);
recyclerView.setLayoutManager(manager);
RecyclerViewAdapter adapter = new RecyclerViewAdapter(context,list);
recyclerView.setAdapter(adapter);
萌新感悟
RecyclerView的使用大概是以上三部分内容。第一部分是适配器,第二部分是泛型,第三部分是具体逻辑实现。
-
适配器
每个RecyclerView都需要一个适配器,如果把recyclerView看成容器的话,适配器的作用就是填充其中的内容,<RecyclerViewAdapter.ViewHolder>规定了泛型,泛型说白了就是充当门卫,筛选需要的信息。public RecyclerViewAdapter()用于获取需要的context和数组,以此和activity真正连接到一起,既然自己规定了泛型,自然要自己写这个泛型了。ViewHolder就是内容,在onCreateViewHolder中返回所需要的ViewHolder。onBindViewHolder里包含的是对每个元素的操作,可以在这里实现对应的点击事件,或者通过position和数据库实现数据交换。。。用处良多 -
泛型
泛型的应用常用于多元素的包装,这里把图片和text包装到总zone里
萌新的感悟还不够深,还在继续学习。。。。