FirebaseRecyclerAdapter():适配器为空

时间:2020-01-07 23:06:21

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

我正在尝试从firebase中获取数据并将其放在类中并在recyclerview中显示,但是在我检索到数据之后,我通过firebaserecyclerpoption和firebaserecycleradapter获得了数据,适配器仍然是空的,我不知道该在哪里是问题,请帮助

protected void onStart() {
    super.onStart();
    mAuth=FirebaseAuth.getInstance();
    FirebaseUser mUser = mAuth.getCurrentUser();
    String uId = mUser.getUid();
    Query query = FirebaseDatabase.getInstance().getReference().child("Shopping List").child(uId);
    FirebaseRecyclerOptions<Data> options  = new FirebaseRecyclerOptions.Builder<Data>().setQuery(query ,Data.class).build();
    FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Data, MyViewHolder>(options) {
        @Override
        public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            // Create a new instance of the ViewHolder, in this case we are using a custom
            // layout called R.layout.message for each item
            View view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.item_data, parent, false);

            return new MyViewHolder(view);
        }
        @Override
        protected void onBindViewHolder(@NonNull MyViewHolder holder, int position, @NonNull Data model) {
            holder.setDate(model.getDate());
            holder.setType(model.getType());
            holder.setNote(model.getNote());
            holder.setAmount(model.getAmount());
        }
    };
    recyclerView.setAdapter(adapter);
}

 public static class MyViewHolder extends RecyclerView.ViewHolder {
    View myview ;
    public MyViewHolder(@NonNull View itemView) {
        super(itemView);
        myview=itemView;
    }

    public void setType (String type){
        TextView mType = myview.findViewById(R.id.type);
        mType.setText(type);
    }
    public void setNote (String note){
        TextView mNote = myview.findViewById(R.id.note);
        mNote.setText(note);
    }
    public void setDate (String date){
        TextView mNote = myview.findViewById(R.id.date);
        mNote.setText(date);
    }
    public void setAmount (int amount){
        TextView mNote = myview.findViewById(R.id.amount);
        String stam = String.valueOf(amount);
        mNote.setText(stam);
    }
}

0 个答案:

没有答案