在Recyclerview上使用数据库

时间:2018-12-10 19:33:08

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

第一个活动将一些数据保存在Firebase数据库中,我需要使用recyclerview在第二个活动上显示。我尝试了很多次,并且按照教程进行操作,但是recyclerview始终不显示任何内容。

Firebase正在正确保存数据,但我不能放在recyclerview。

活动是:

MenuActivity(recyclerview)

private RecyclerView recyclerView;
private Informações informações;
FirebaseDatabase database;
DatabaseReference myRef;
List<Informações> list;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu);

    recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
    database = FirebaseDatabase.getInstance();
    myRef = database.getReference("Informações");

    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            list = new ArrayList<Informações>();
            for (DataSnapshot dataSnapshot1 :dataSnapshot.getChildren()){

                Informações value = dataSnapshot1.getValue(Informações.class);
                Informações informações = new Informações();
                String empresa = value.getEmpresa();
                String setor = value.getSetor();
                String data = value.getData();
                informações.setEmpresa(empresa);
                informações.setSetor(setor);
                informações.setData(data);
                list.add(informações);
            }
        }
        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
        }
    });

    RecyclerAdapter recyclerAdapter = new RecyclerAdapter(list, MenuActivity.this);
    RecyclerView.LayoutManager recyce = new GridLayoutManager(MenuActivity.this,2);
    recyclerView.setLayoutManager(recyce);
    recyclerView.setAdapter(recyclerAdapter);

RecyclerAdapter

List<Informações> list;
Context context;

public RecyclerAdapter(List<Informações> list, Context context){
    this.list = list;
    this.context = context;
}
@Override
public MyViewHolder onCreateViewHolder( ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.adapter_lista,parent,false);
    MyViewHolder myViewHolder = new MyViewHolder(view);
    return myViewHolder;
}
@Override
public void onBindViewHolder( MyViewHolder holder, int position) {
    Informações mylist = list.get( position );
            holder.empresa.setText(mylist.getEmpresa());
            holder.setor.setText(mylist.getSetor());
            holder.data.setText(mylist.getData());
}
@Override
public int getItemCount() {
    int arr = 0;
    try { 
        if (list.size() == 0)
                 { arr = 0;
             } else { arr = list.size(); }
        } catch (Exception e) {}
    return arr;
}
public class MyViewHolder extends RecyclerView.ViewHolder {
    TextView empresa, setor, data;

    public MyViewHolder(View itemView) {
        super(itemView);
        empresa = (TextView) itemView.findViewById(R.id.textEmpresa);
        setor = (TextView) itemView.findViewById(R.id.textSetor);
        data = (TextView) itemView.findViewById(R.id.textData);
    }
}

}

还有Firebase

public class Informações {

private String equipe;
private String empresa;
private String setor;
private String responsavel;
private String visita;
private String ferramenta;
private String data;
public Informações() {
}
public void salvar(){
    DatabaseReference firebase = ConfiguracaoFirebase.getFirebaseDatabase();
    firebase.child("Informações")
            .child( this.empresa )
            .setValue( this );
}
public String getVisita() { return visita; }
public void setVisita(String visita) { this.visita = visita; }
public String getFerramenta() { return ferramenta; }
public void setFerramenta(String ferramenta) { this.ferramenta = ferramenta; }
public String getData() { return data; }
public void setData(String data) { this.data = data; }
public String getEquipe() { return equipe; }
public void setEquipe(String equipe) { this.equipe = equipe; }
public String getEmpresa() { return empresa; }
public void setEmpresa(String empresa) { this.empresa = empresa; }
public String getSetor() { return setor; }
public void setSetor(String setor) { this.setor = setor; }
public String getResponsavel() { return responsavel; }
public void setResponsavel(String responsavel) { this.responsavel = responsavel; }

}

enter image description here

0 个答案:

没有答案