Ich habe eine RecyclerView
geladen von Firebase Daten, ich muss eine Funktionalität zu einer Schaltfläche hinzufügen, die in jedem Element ist, die ein Produkt zum Einkaufen hinzufügen soll Wagen.Ereignis in einer Taste jedes Elements eines Firebase-Recycler-Adapter
Das Problem, das ich habe, tritt auf, wenn mehr als ein Element im Recycler vorhanden ist, da das Klicken auf die Schaltfläche ein Element korrekt hinzufügt, die anderen jedoch nicht mehr hinzugefügt werden können.
Was ich will, ist die onclik
für jeden Artikel zu tun und anscheinend dauert es nur einmal.
@Override
protected void populateViewHolder(final FriendsViewHolder viewHolder, final Menu model, int position) {
final String item_id = getRef(position).getKey();
final String rest_id = getIntent().getStringExtra("rest_id");
viewHolder.setName(model.getNombre());
viewHolder.setDescrpcion(model.getDescripcion());
viewHolder.setImage(getApplicationContext(),model.getThumb_image());
viewHolder.agregaBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mEstado_pedidos.equals("sin_pedidos")){
Map pedidoMap = new HashMap();
pedidoMap.put("Solicitud_Pedido/"+mCurrent_user.getUid() + "/" + rest_id + "/" + item_id + "/tipo_pedido", "solicitado");
pedidoMap.put("Solicitud_Pedido/"+rest_id + "/" + mCurrent_user.getUid() + "/" + item_id +"/tipo_pedido", "recibido");
mRootRef.updateChildren(pedidoMap, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
if (databaseError != null){
Toast.makeText(getApplicationContext(), "Hubo un error al enviar la solicitud" , Toast.LENGTH_SHORT).show();
}
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setEnabled(true);
fab.setVisibility(View.VISIBLE);
mEstado_pedidos = "con_pedido";
Button agregaBtn = (Button)findViewById(R.id.btn_agregar);
agregaBtn.setText("Eliminar del carrito");
}
});
}
}
});
final String list_user_id = getRef(position).getKey();
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
Dies ist die Klasse Viewholder
public static class FriendsViewHolder extends RecyclerView.ViewHolder {
View mView;
Button agregaBtn;
public FriendsViewHolder(View itemView) {
super(itemView);
mView = itemView;
agregaBtn = (Button)mView.findViewById(R.id.btn_agregar);
}
public void setName(String nombre){
TextView mName = (TextView) mView.findViewById(R.id.nombre_item);
mName.setText(nombre);
}
public void setDescrpcion(String descrpcion){
TextView mDescripcion = (TextView) mView.findViewById(R.id.descripcion_item);
mDescripcion.setText(descrpcion);
}
public void setImage(final Context context, String thumb_image){
ImageView mImagen = (ImageView) mView.findViewById(R.id.imagen_item);
Picasso.with(context).load(thumb_image).into(mImagen);
}
}
Ihre Frage nicht klar ist .. Können Sie den Code ab 'adapter' Zuordnung über' propulateviewholder schreiben 'und update Frage mit einem Beispiel/Screenshots wenn möglich .. –
Sie müssen überprüfen, ob Artikel in den Warenkorb hinzugefügt wird, sehe ich nicht, wie Sie überprüfen, ob hinzugefügt wird oder nicht. Wie überprüfen Sie, ob Artikel in den Warenkorb gelegt wird –
Hallo + Bruno Ferreira hat es sich angemeldet? Para ponder explicar mejor porque no se hablar bien inglés –