2016-05-15 50 views
0

.setText在for循環中不起作用。 而setVisibility setAlphabet() 對不起,我的英語結束後只是工作...setText進入循環不起作用setVisibility也不是

private ImageButton playTeste1; 
private TextView alfabeto; 

public void setListeners(){ 
    playTeste1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      playTeste1.setVisibility(View.INVISIBLE); 
      alfabeto.setVisibility(View.VISIBLE); 
      setAlphabet(); 
     } 
    }); 



public void setAlphabet(){ 
     try{ 
      String temp; 
      for(char alphabet = 'A'; alphabet <= 'Z';alphabet++) { 
      System.out.println(alphabet); 
      temp = String.valueOf(alphabet); 
      alfabeto.setText(temp); 
      Thread.sleep(1000); 
     } 
     }catch (InterruptedException e) { 
       System.out.println("error in Thread"); 
      } 
    } 
+0

您是否使用xml佈局文件中各個元素的id在代碼中初始化了'TextView'和'ImageButton'? –

+0

它會拋出一個錯誤? – Omar

+0

嗨!謝謝,是的,我初始化他們... –

回答

0

也許問題是,你是不是在UI線程。在這種情況下,您應該嘗試在runOnUIThread方法中設置文本。

public void setAlphabet(){ 
    try{ 
     String temp; 
     for(char alphabet = 'A'; alphabet <= 'Z';alphabet++) { 
     System.out.println(alphabet); 
     temp = String.valueOf(alphabet); 
     try { 
       // code runs in a thread 
       runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          alfabeto.setText(temp); 
         } 
       }); 
      } catch (final Exception ex) { 
       Log.i("---","Exception in thread"); 
      } 
     Thread.sleep(1000); 
    } 
    }catch (InterruptedException e) { 
      System.out.println("error in Thread"); 
     } 
} 

runOnUIThread方法必須在Activity類或Activity對象(或其子類)中調用。

+0

你好!謝謝,我會讀到的! –

+0

請你能幫我嗎?我需要一個例子,我嘗試使用UI和異步,但沒有成功... –