2017-08-13 45 views
1

我正在學習Java和Android Studio。Andriod Studio Java

我有下面的代碼,我希望在屏幕上可以計算多達300萬。

它編譯並運行,最後在模擬器上顯示300萬。我的問題是如何在循環中強制重繪/顯示文本框?

/** Called when the activity has become visible. */ 
    @Override 
    protected void onResume() { 
     super.onResume(); 
     Log.d(msg, "The onResume() event"); 
     TextView textbox1=(TextView)findViewById(R.id.TextView1); 
     for(double l=0; l<=3000000; l++){ 
      textbox1.setText("" + l); 
     } 
    } 
+0

你能解釋一下嗎?你需要做什麼? –

+0

描述你所期待的輸出 –

+0

我希望看到在文本框中顯着增加的值。 – Iain

回答

0

onResume運行完畢後的視圖只禁用

您可能希望在textview中設置文本,更新活動中的某個狀態(如int字段),並註冊一些代碼以在一段時間後運行並增量。請看使用Handler,AsyncTask或其他選項推遲代碼。

這裏有一個快速而骯髒的例子Handler

final long DELAY_MILLIS = 50; 
final Handler handler = new Handler(); 
int num = 0; 
final Runnable runnable = new Runnable() { 
    public void run() { 
    if (num >= 3000000) return; 
    textbox1.setText("" + num); 
    num++; 
    // re-register ourself to run in DELAY_MILLIS; 
    handler.postDelayed(runnable, DELAY_MILLIS); 
    } 
}; 

TextView textbox1; 

protected void onResume() { 
    // more efficient to look this up once 
    this.textbox1 = (TextView)findViewById(R.id.TextView1); 
    runnable.run(); // will register itself to re-run 
}