我有一个简单的责任,我想学点东西。如何用TextView显示Firebase数据库中的数据?
mDatabase = FirebaseDatabase.getInstance().getReference("MyData");
mDatabase.child("Dog").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String txt = dataSnapshot.getValue(String.class);
Splash_Title.setText(txt);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我可以用这种方法来展示它,但我想知道是否有更短的方法。
我想提前得到带有数据“狗”的TextView的值,谢谢。
`{ "MyData" : { "Cat" : "x", "Dog" : "y" } }`
发布于 2018-06-03 04:08:20
正如frank所说,您所做的是正确的,因为您只指出了MyData节点中的1个值。如果您只需要获取唯一的值,这将非常有用,但是如果您希望从MyData对象获取所有值,则应该编写一个POJO类,然后使用foreach获取这些值,这将为您带来来自MyData的所有值
mDatabase = FirebaseDatabase.getInstance().getReference("MyData");
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DatasnapShot snapShot : dataSnapshot.getChildren())
MyData md = snapShot.getValue(MyData.class);
String dog = md.getDog(); //get dog name
String cat = md.getCat(); // get cat name
//And then just do a log to print or see those values
Log.e("DogAndCatName",""+dog+cat);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
您只需要另一个名为MyData.class
的POJO类
这样,我们就可以创建对象MyData来访问dataSnapshot请求中该对象的每个数据。
public class MyData {
private String Dog;
private String Cat;
public MyData() {
}
public String getDog() {
return Dog;
}
public void setDog(String dog) {
Dog = dog;
}
public String getCat() {
return Cat;
}
public void setCat(String cat) {
Cat = cat;
}
}
https://stackoverflow.com/questions/50657391
复制相似问题