簡體   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