我想将所有这些数据检索到android studio中的ListView,这可能吗? 这很容易做到吗?我是代码开发的新手。
[![Firebase Data] [1]] [1]
我正在使用“ addValueEventListener”来检索数据:
reff2 = database.getInstance().getReference().child("Registo Inicial e Final");
reff2.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange( DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
Log.e("MATRICULAA", String.valueOf(ds.child("matricula").getValue()));
String message = ds.child("nome_CONDUTOR").getValue().toString();
String message2 = ds.child("matricula").getValue().toString();
String message3 = ds.child("cod_PROJETO").getValue().toString();
String message4 = ds.child("km_INICIAL").getValue().toString();
String message5 = ds.child("km_FINAL").getValue().toString();
String message6 = ds.child("data_INICIO").getValue().toString();
String message7 = ds.child("data_FIM").getValue().toString();
String message8 = ds.child("hora_INICIO").getValue().toString();
String message9 = ds.child("hora_FIM").getValue().toString();
String message10 = ds.child("observacoes").getValue().toString();
Log.e("KM", String.valueOf(ds.child("km_FINAL").getValue()));
Nome.setText(message);
Matricula.setText(message2);
Cod.setText(message3);
Kilometros_inicial.setText(message4);
Kilometros_final.setText(message5);
Data_inicial.setText(message6);
Data_final.setText(message7);
Hora_inicial.setText(message8);
Hora_final.setText(message9);
Observacoes.setText(message10);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("The read failed: " ,databaseError.getMessage());
}
});
这就是我得到的: 我想要所有来自不同节点的数据,我不知道为什么它会覆盖数据。
答案 0 :(得分:1)
是的。可以,这很容易。创建一个这样的类:
df.join(df.groupby('ID').filter(lambda x: len(x)>1).groupby('ID').head(1).assign(X='T').X, how='left')
请记住:如果使用的是getter和setter,则它们必须是公共的,否则变量必须是公共的。首选使用getter和setter方法。
然后在您的valueEvent侦听器中使用以下类:
public class YourClass(){
public String cod_PROJETO;
public String data_FIM;
.... /// All or required data items here
// no argument constructor
public YourClass(){}
public String getCod_PROJETO(){
return cod_PROJETO;
}
public void setCod_PROJETO(String cod_PROJETO){
this.cod_PROJETO = cod_PROJETO;
}
.... /// Getters and setters for your data items.
.... /// Android studio code completion suggestions will make this easier;
}
由于要在ListView中显示它,因此请在valueEventListener中使用类似的内容:
YourClass data = ds.getValue(YourClass.class);
通过这种方式,您还可以在Firebase中设置数据,例如:
yourClassList.clear();
for (DataSnapshot ds : dataSnapshot.getChildren()) {
YourClass data = ds.getValue(YourClass.class);
if(data != null)
yourClassList.add(data);
}
// update your listView adapter here using notifyDataSetChanged