我正在尝试从firebase数据库填充TextView。这是示例json文件。
amidi -l
Dir Device Name
IO hw:1,0,0 MIDI 1
这是我的android代码:
{
"Player" : {
"Club" : "Valley Rovers",
"Name" : "John Murphy"
}
}
我想将John Murphy这个名字添加到firebase数据库中,并且这样做TextView mPlayer将填充John Murphy。
答案 0 :(得分:3)
你正在接生孩子"姓名"你的代码两次(导致播放器/名称/名称)。将其从mDatabase初始化中删除:
mDatabase = FirebaseDatabase.getInstance().getReference("Player");
并且您从未真正从收到的DataSnapshot中获取值。为此,请使用:
mDatabase.child("Name").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String playerName = dataSnapshot.getValue(String.class);
mPlayer.setText(playerName);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
如果将来有人想要使用POJO方法处理此问题,请按照以下示例进行操作:
从mDatabase.child("Name").addValueEventListener(new ValueEventListener()
移除孩子("名称")
除非您想要获取"名称"只有孩子。还要记住对mDatabase初始化进行校正。
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// String playerName = dataSnapshot.getValue(String.class);
PlayerModel playerModel = dataSnapshot.getValue(PlayerModel.class);
((TextView)findViewById(R.id.textviewName)).setText(playerModel.getName());
((TextView)findViewById(R.id.textviewClub)).setText(playerModel.getClub());
// mPlayer.setText(playerName);
}