Así que tengo una RecyclerView
dentro de otra RecyclerView
. Y en mi onBind()
método en el recyclerView1
que estoy tratando de establecer los datos para recyclerView2
, el hecho es que recyclerView1
tiene una FirebaseRecyclerAdapter
y recyclerView2
tiene una costumbre RecyclerAdapter
y el onCreate()
método en el recyclerView2
's adapter
que nunca se llama, por lo que el conjunto de datos es buena, pero no crea mi recyclerView2
en la interfaz este reciclador está vacía.
Pongo un punto de interrupción en el OrderViewHolder onCreateViewHolder
y que sólo se salta este.
Aquí está el código de los recyclerView2
's adapter
onCreate
y onBind
métodos:
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;
}
Y aquí está el código de la costumbre recyclerView2
's 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;
}
Su número de elementos es cero:
@Override
public int getItemCount() {
return 0;
}
Por lo tanto RecyclerView
, no ve ningún artículo para inflar. Usted debe fijarla para devolver el tamaño de su lista:
@Override
public int getItemCount() {
return orderModels.size();
}