![](/img/trans.png)
[英]Why is my RecyclerView not showing anything? / What happend if Recycler Adapter is set again after notifyDataSetChanged() called?
[英]Why onCreateView on my RecyclerView Adapter is not called?
所以我有一个RecyclerView
另一个里面RecyclerView
。 在recyclerView1
onBind()
方法中,我试图为recyclerView2
设置数据,事实是recyclerView1
有一个FirebaseRecyclerAdapter
并且recyclerView2
有一个自定义的RecyclerAdapter
并且recyclerView2
的adapter
的onCreate()
方法从未被调用,所以数据集很好,但它不会在该回收器为空的界面中创建我的recyclerView2
。
我在OrderViewHolder onCreateViewHolder
上放置了一个断点,它只是跳过了这个。
这是来自recyclerView2
的adapter
onCreate
和onBind
方法的代码:
adapterReceivedCommands = new FirebaseRecyclerAdapter<Comanda, ReceivedCommandsViewHolder>(optionsReceivedCommands) {
@NonNull
@Override
public ReceivedCommandsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_command,parent,false);
layoutManagerOrder = new GridLayoutManager(parent.getContext(),3);
orderRecycler = (RecyclerView) itemView.findViewById(R.id.order_recycler);
orderRecycler.setLayoutManager(layoutManagerOrder);
fragmentItem = (LinearLayout)itemView.findViewById(R.id.item_layout);
return new ReceivedCommandsViewHolder(itemView);
}
@Override
protected void onBindViewHolder(@NonNull final ReceivedCommandsViewHolder receivedCommandsViewHolder, int i, @NonNull final Comanda comanda) {
receivedCommandsViewHolder.tableNmb.setText(comanda.getmasa());
orderModelArrayList = comanda.getcomanda();
mAdaptor = new RecyclerViewAdapter(this, orderModelArrayList);
receivedCommandsViewHolder.recyclerView.setAdapter(mAdaptor);
}
};
adapterReceivedCommands.startListening();
receivedCommandsRecycler.setAdapter(adapterReceivedCommands);
return view;
}
这是来自自定义recyclerView2
的adapter
的代码:
public class RecyclerViewAdapter extends RecyclerView.Adapter<OrderViewHolder>{
private ArrayList<OrderModel> orderModels = new ArrayList<OrderModel>();
private FirebaseRecyclerAdapter<Comanda, ReceivedCommandsViewHolder> context;
public RecyclerViewAdapter(FirebaseRecyclerAdapter<Comanda, ReceivedCommandsViewHolder> context, ArrayList<OrderModel> orderModels) {
this.orderModels = orderModels;
this.context = context;
}
@NonNull
@Override
public OrderViewHolder onCreateViewHolder(@NonNull ViewGroup parent, final int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_order,parent,false);
OrderViewHolder holder = new OrderViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull OrderViewHolder holder, int position) {
OrderModel curentModel = orderModels.get(position);
holder.cantitateTxt.setText(curentModel.getCantitate().toString());
holder.comandaTxt.setText(curentModel.getDenumireProdus());
}
@Override
public int getItemCount() {
return 0;
}
您的商品数量为零:
@Override
public int getItemCount() {
return 0;
}
所以RecyclerView
看不到任何要膨胀的项目。 您应该修复它以返回列表的大小:
@Override
public int getItemCount() {
return orderModels.size();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.