2017-04-05 80 views
1

首次在android studio中進行編程,並試圖製作認知測試數字跨度的最小可行產品。這個想法是,每隔X秒就會顯示一個數字,當所有數字都顯示出來時,您需要按照它們出現的順序輸入正確的數字。如果你是對的,下一輪的數量會增加。Android迷你遊戲 - 延遲代碼

我遇到的問題是我想對彈出的數字施加延遲。我嘗試過使用處理程序,但沒有成功,並且正在用盡想法。

下面是未如預期運行的代碼的小手工製作的例子:

handler.post(new Runnable() { 
      @Override 
       public void run() { 
        if(counter < difficulty) { 
         numberText.setText(numbersArray.get(counter) + ""); 
         counter += 1; 
         handler.postDelayed(this, 600); 
        }else{ 
         handler.removeCallbacks(this); 
        } 
       } 
      }); 

的問題是代碼的其餘部分保持運行,而處理被延遲。我想要的是在繼續之前將整個代碼延遲X秒。 處理程序的另一個問題是,您無法訪問處理程序之外的最終變量,因此計數器不適用於我。

希望它只是我是一個白癡,並有一個簡單的解決方案,我的問題。

編輯:雖然我在這裏,是否有可能在另一個延遲內有延遲?就這樣我知道將來。

+0

您可以隨時在您的處理程序中創建變量Global並調用方法 – shadygoneinsane

回答

0

的問題是代碼的其餘部分保持,而處理被延遲

移動要根據您的要求被延遲的方法和調用從亞軍該方法的所有代碼運行。

處理程序的另一個問題是,你不能訪問處理程序之外的最終變量,所以計數器不適用於我。

您可以將計數器變量定義爲全局類字段,然後可以從類中的任何位置訪問它,而無需將其聲明爲最終變量。