なぜRecyclerViewアダプタ上のonCreateViewは呼び出されませんか?

Razvan三須Costescu:

私が持っているので、RecyclerView別の内部をRecyclerViewそして、私の中onBind()での方法recyclerView1私は、データを設定しようとしていますrecyclerView2が、実際はそれがあるrecyclerView1持っているFirebaseRecyclerAdapterrecyclerView2カスタムしているRecyclerAdapteronCreate()のメソッドrecyclerView2のは、adapterデータセットが良いですので、呼び出されることはありませんが、それは私が作成していない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;
}

そして、ここでカスタムのコードである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;
}
ライアンMentley:

あなたのアイテム数はゼロです。

@Override
public int getItemCount() {
    return 0;
}

だから、RecyclerView膨らませるためにすべての項目が表示されません。あなたはあなたのリストのサイズを返すためにそれを修正する必要があります。

@Override
public int getItemCount() {
    return orderModels.size();
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=280458&siteId=1