2013-08-12 101 views
0

我想創建一個程序具有名爲button1button2。這2 Button s爲button1onClick方法塊:如何刷新視圖內容?

public void click1(View v){ 
     Button b = (Button)findViewById(R.id.button2); 
     b.setText("TEXT 1"); 
     SystemClock.sleep(500); 
     b.setText("TEXT 2"); 

    } 

,但問題是對象「B」的第一改變之後的文本以「TEXT 1」,它什麼都不會發生,並且在500毫秒之後'b'的文本變成了「文本2」。

有什麼問題?如何刷新Layout瀏覽內容?

+1

'SystemClock.sleep(500);'刪除此行 –

+0

我需要這一行。代替這一行它會產生一個沉重的代碼,我需要這個。 –

回答

1

而不是使用SystemClock.sleep(500);,請您Handler,你可以試試這個代碼:

public void click1(View v){ 
       Button b = (Button)findViewById(R.id.button2); 
       b.setText("TEXT 1"); 
       new Handler().postDelayed(new Runnable() { 

        @Override 
        public void run() { 
         b.setText("TEXT 2");  
        } 
       }, 500;) 
       //b.forceLayout(); 
      } 

希望這有助於。