2016-04-23 52 views
1

我想在遊戲中的TextView中顯示分數。在比賽中得分增加,但我不能在onCreate()方法中做到。我是否需要使用適配器或偵聽器?如何?在遊戲中顯示MainActivity中的TextView中的分數

+0

您可以使用一種方法(例如'onScoreChange')創建接口。然後在你的Activity中實現這個接口來更新textView。然後每當分數發生變化時,您只需調用正在實施它的類。 – Arijoon

回答

0

無論您的活動實現了一個自定義的監聽器,並在你的遊戲註冊本身,或使用事件總線。

我用這一個很多 https://github.com/greenrobot/EventBus

每當遊戲抓住了新的成績,它出版的得分事件,並註冊到它(如您的活動)中的所有對象獲取事件,並刷新它的數據(在這種情況下的UI)。

0

我did'nt很好地理解你的問題,但我猜你有你的分數存儲

//so you can use an handler and a runnable to update textView each 1000ms 
private TextView yourTextView 
private mHandler = new Handler(); 
private Runnable = new Runnable() { 
    @override 
    public void run() { 
      // Check first if the reference to your textView is available 
     if(yourTextView !=null) { 
      // Get your score some how 
      yourTextView.setText(myScore); 
      } 
     mHandler.postDelayed(this,1000); 
    } 

};

而在你的代碼,當你準備顯示得分 做呼叫處理器與

mHandler.posDelayed(mRunnable,100); // Shorter delay for instant trigger 
+0

其實我不希望更新分數textview每1000ms,我想更新比分,只要它發生變化,例如當球員進行移動。 @ thunder413 –