我从数据库中获取了一个值并存储在变量中。我完全得到了预期的价值。但是当我尝试将这些值设置为textview时,它显示为null或0.为什么会发生这种情况?怎么解决这个问题?
我用过,
claimedNos = dataSnapshot.child("Claimed").getValue(int.class);
此代码用于从数据库获取数据。
valueClaimed.setText(String.valueOf(claimedNos));
这用于将值设置为textview。
代码就在这里,
public int claimedNos;
uDatabase.child(userId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
claimedNos = dataSnapshot.child("Claimed").getValue(Integer.class);
Log.d("TAG","claimed nos in account :"+claimedNos);
}
答案 0 :(得分:0)
当您的代码发布并且注释让我假设您没有在侦听器内部将文本设置为TextView。所以我建议你把
valueClaimed.setText(String.valueOf(claimedNos));
这样的onDataChange
方法
public int claimedNos=0;
uDatabase.child(userId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
claimedNos = dataSnapshot.child("Claimed").getValue(Integer.class);
Log.d("TAG","claimed nos in account :"+claimedNos);
valueClaimed.setText(String.valueOf(claimedNos));
}
您的代码在listner监听dataChange事件之前设置了值并且它变为null和零所以现在上面的代码将在从firebase接收后设置 claimNos ,