我有回收器视图适配器的代码
public class RvAdapter extends RecyclerView.Adapter<RvAdapter.CardHolder> {
@Override
public CardHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.rv_item,parent,false);
return new CardHolder(v);
}
@Override
public void onBindViewHolder(CardHolder holder, int position) {
}
@Override
public int getItemCount() {
return 10;
}
public class CardHolder extends RecyclerView.ViewHolder {
ImageView bg;
public CardHolder(View itemView) {
super(itemView);
bg=(ImageView)itemView.findViewById(R.id.rvItemImage);
}
}
}
和MainActivity
// the recycle view
rv=(RecyclerView)findViewById(R.id.mainBgRv);
adapter=new RvAdapter();
RecyclerView.LayoutManager linearLayoutManager=new LinearLayoutManager(MainActivity.this,LinearLayoutManager.HORIZONTAL,false);
try{
rv.setLayoutManager(linearLayoutManager);
rv.setAdapter(adapter);
}catch (Exception e){
Log.i("ERROR_TAG",e.toString());
}
//
当我使用布局管理器时,应用停止并且不会抛出任何异常...... 当我删除它只是没有显示rv
中的任何项目答案 0 :(得分:0)
你的适配器没有做任何应该做的事情。在这里看到这篇文章:
Simple Android RecyclerView example 在哪里可以找到适配器的示例。
问题是你必须传递Adapter内部的项目列表,并且在onBindViewHolder方法中你必须运行一个代码,这将为ViewHolder填充数据。
换句话说 - RecyclerViewAdapter有两个角色 - 它创建项目视图(ViewHolder模式)并根据需要用数据填充它们。
你忘记了第二件事。