我如何可以获取从多个数据库引用相同recyclerview

时间:2019-02-02 15:40:11

标签: java android firebase firebase-realtime-database android-recyclerview

我设立一个火力地堡Reyclerview与FirebaseRecyclerAdapter,现在我的适配器将被取回从两个不同的数据库引用和绑定到同一recyclerview,没有任何人知道如何解决这个问题?

我使用的接口来获取这样的

的数据库引用
private interface CallBack{
    void onCallback(String Position, String PositionTwo);
}

然后我将它们发送给函数

   private void loadItems(String Position, String PositionTwo) {
    adapter = new FirebaseRecyclerAdapter<Foo, FooViewHolder>(
            Foo.class,
            R.layout.Foo_item,
            FooViewHolder.class,
            reference.child(Position).child(PositionTwo)
    ) {
        @Override
        protected void populateViewHolder(FooViewHolder viewHolder, 
   Foo model, int position) {

            viewHolder.mDescription.setText(model.getDescription());

            viewHolder.mName.setText(model.getName());
            Picasso.get().load(model.getImage()).into(viewHolder.mImage);



        }
    };

我的ViewHolderClass是

 public class FooViewHolder extends RecyclerView.ViewHolder 
  implements View.OnClickListener,

                {

public TextView mName;
public CircleImageView mImage;
private ItemClickListener itemClickListener;
public TextView mDescription;


public FooViewHolder(View itemView) {
    super(itemView);


    mImage = (CircleImageView) itemView.findViewById(R.id.mImage);
    mName = (TextView) itemView.findViewById(R.id.mName);
    mDescription = (TextView) itemView.findViewById(R.id.mDescription);



    itemView.setOnClickListener(this);

}

@Override
public void onClick(View view) {

}

现在这行不通,因为它只接受传递给适配器的第一个参数,而不接受从接口传递的参数!

1 个答案:

答案 0 :(得分:1)

  

现在应该从两个不同的数据库引用中获取我的适配器。

这基本上意味着您正在尝试使用两个查询(数据库引用)并将它们传递给适配器,但是不幸的是,无法将两个查询合并到一个FirestoreRecyclerAdapter对象中。只能允许一个。

我可以想到的一种可能的解决方案是创建一个列表,其中将包含应用程序中这些查询的组合结果,然后将该列表传递给ArrayAdapter。这并不完美,因为您不会使用Firebase-UI库,但可以解决问题。