在textView中设置一个整数值显示为null,如何在android中解决这个问题?

时间:2018-04-20 10:26:53

标签: java android

我从数据库中获取了一个值并存储在变量中。我完全得到了预期的价值。但是当我尝试将这些值设置为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);
        }

1 个答案:

答案 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