繁体   English   中英

为什么我的 RecyclerView Adapter 上的 onCreateView 没有被调用?

[英]Why onCreateView on my RecyclerView Adapter is not called?

所以我有一个RecyclerView另一个里面RecyclerView recyclerView1 onBind()方法中,我试图为recyclerView2设置数据,事实是recyclerView1有一个FirebaseRecyclerAdapter并且recyclerView2有一个自定义的RecyclerAdapter并且recyclerView2adapteronCreate()方法从未被调用,所以数据集很好,但它不会在该回收器为空的界面中创建我的recyclerView2

我在OrderViewHolder onCreateViewHolder上放置了一个断点,它只是跳过了这个。

这是来自recyclerView2adapter onCreateonBind方法的代码:

 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;
}

这是来自自定义recyclerView2adapter的代码:

 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM