2017-04-19 51 views
-1

我是android開發新手。我正在製作一個簡單的應用程序,其中有一項活動。在這個活動中,我試圖在文本視圖中循環t和t的打印值。但問題是,我的應用程序顯示我白屏,直到t == 100。當t == 100時,它將textView的值更改爲100並向我顯示屏幕。 下面是我使用的代碼:Android應用程序顯示白屏直到所有代碼執行結束

public class MainActivity extends AppCompatActivity {  
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setTheme(R.style.AppTheme); 
     setContentView(R.layout.activity_main); 
     String inputFilePath = "/storage/emulated/0/1.jpg"; 
     for (int t = 0; t < 100; t++) { 
      TextView tv = (TextView)findViewById(R.id.textView3); 
      tv.setText("Welcome to android "+t); 

     } 

    } 
} 

什麼,我期待的是,我應該從應用開始看到主要活動視圖,應該看到的內容被改變textView3的屏幕上

+0

你的期望是錯誤的...因爲你阻止UI線程不會有屏幕更新,這意味着沒有TextView的文本更新太明顯...選擇是使用不同的線程進行迭代,並將結果返回到UI線程... fx與AsyncTask ...但它被問了這麼多次,我不會寫更多的細節 – Selvin

回答

0

從你要求我猜你需要定時器

int count; 
    new CountDownTimer(10000, 100) { 

     public void onTick(long millisUntilFinished) { 
      count++; 
      tv.setText("Welcome to android "+ count); 
     } 

     public void onFinish() { 

     } 
     }.start(); 
+0

在*要求*的地方說明它應該增量之間等待100ms? – Selvin

-1

你的TextView顯示了所有的數字,但for循環執行如此之快,你都無法看到。

for循環在幾毫秒內執行。人眼可以看到每秒讀取超過500個字。所以你能看到的是最後一個號碼。

您需要在更改textview文本之間添加一些等待時間。我建議youto利用這個機會,瞭解文字切換

how to continuously switch textswitcher between two values every 2 seconds

+0

*你的textview顯示所有的數字,但for循環執行得如此之快以至於你看不到它...... * ...不是真的......他寫道:「Android應用程序顯示白屏直到執行完所有代碼」 ... * for循環在幾毫秒內執行。人眼可以看到每秒讀取超過500個字。*認真?請了解什麼是UI線程...即使您要在循環中添加'thread.sleep(1000)',您將看不到因爲** UI線程被阻止而發生的更改** – Selvin

相關問題