簡體   English   中英

從Firebase獲取數據時需要單擊多個按鈕才能顯示

[英]Fetching data from firebase taking more than one button click to display

我想顯示每當用戶單擊按鈕時從firebase提取的數據。 這是我目前正在使用的代碼

todayPoem = (TextView) findViewById(R.id.todpoem);

/*Firebase related code*/
        myFirebaseRef = new Firebase("https://firebase url");

        myFirebaseRef.child("poem").addValueEventListener(new ValueEventListener() {

            @Override
            public void onDataChange(DataSnapshot snapshot) {
                System.out.println(snapshot.getValue());
                s1 = (String) snapshot.getValue();
            }

            @Override
            public void onCancelled(FirebaseError error) {
            }


        });



    }

    public void onClickPoem(View v) {
        todayPoem.setTextSize(20);
        todayPoem.setText(s1);
    }

xml文件包含一個textview和一個從Firebase中獲取數據的按鈕。 但是問題是,每當我單擊按鈕時,數據都不會立即顯示,通常需要將近5-6次按鈕單擊才能顯示數據。 我在這里做錯了什么?

我之前遇到過這個問題...我建議您像下面的示例那樣做:

mrf.setAndroidContext(this);
mrf = new Firebase('Firebase url');


final Firebase myData = mrf.child("info");
    myData.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(final DataSnapshot dataSnapshot) {

            x1 = dataSnapshot.getValue(String.class);
            x2 = x1; // Global variable


        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }
    });

使用變量“ x2”執行您想要的操作。 我不為什么,但是使用用於從Firebase接收數據的相同變量存在一些問題。

希望它與您合作...

另外,如果您希望用戶知道正在檢索數據,則可以將proc與Bar一起使用。 單擊一個按鈕並且'x1'等於null后,請執行以下操作: progressBar.setVisibility(View.VISIBLE);

然后

handler.postDelayed(new Runnable() {
       public void run() {

            progressBar.setVisibility(View.GONE);
            t.setText(x2);

     }
}, 800);

祝好運..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM