Android Firebase 将数据 recyclerview 传递给 recyclerview

Android Firebase pass data recyclerview to recyclerview

我想将数据 RC_1 传递给 RC_2。我怎样才能将 RecyclerView 转换为 RecyclerView?Examp.pic_1

我的firebase节点和图片一样。 My firebase node

//RC_1 结构

 public class Name_Struct {
        private String name;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    }

//RC_2 结构

public class Detail_Struct {
    private String cat;
    private String info;
    private String orderid;

public String getCat() {
    return cat;
}
public void setCat(String cat) {
    this.cat = cat;
}
public String getInfo() {
    return info;
}
public void setInfo(String info) {
    this.info = info;
}
public String getOrderid() {
    return orderid;
}
public void setOrderid(String orderid) {
    this.orderid = orderid;
}

RC_1 为; //Myactivity_1

private void rc_1_get_name(){
    Query query = FirebaseDatabase.getInstance().getReference()
            .child(“Pro_”);
    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            mName.clear();
            for(DataSnapshot snp : snapshot.getChildren()){
                Name_Struct names = snp.getValue(Name_Struct.class);
                for (DataSnapshot recipeSnapshot: snp.child(“basket”).getChildren()) {
                    mName.add(names);
                }
            }
            mName_adapter.notifyDataSetChanged();
        }
        @Override
        public void onCancelled(@NonNull DatabaseError error) {
        }
    });
}

RC_1 为; //Myadapter_1

@Override public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) {

    final Name_Struct names = mName.get(position);
    holder.name_.setText(names.getName()));

holder.relativeLayout.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
Intent intent = new Intent(mContext, RC_2.class);

???

mContext.startActivity(intent);

}

}

正如我在您的屏幕截图中看到的,“Pro_”节点包含一个值为“Mike”的名称。这意味着您可以将该节点映射到 Name_Struct 类型的对象中。你正在成功地做到这一点。在同一个节点下,还有另一个名为“篮子”的节点。该节点由 Map 对象表示,其中键由这些 ID(ID_1、ID_2 等)表示,值由 Detail_Struct 对象表示。为了能够在“篮子”节点下映射数据,您必须在您的 Name_Struct class 中添加一个新的 属性 称为 basket,如下所示:

public class Name_Struct implements Serializable {
   private String name;
   private Map<String, Object> basket;

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }

   @PropertyName("Basket")
   public Map<String, Object> getBasket() {
       return basket;
   }

   public void setBasket(Map<String, Object> basket) {
       this.basket = basket;
   }
}

现在要将数据传递给第二个 activity,您必须添加迭代 Map 并创建一个可以添加到 Intent 中的 List<Detail_Struct>,以便可以在第二个 activity.