2013-03-28 3 views
1

나는 안드로이드를 처음 접하고 약간의 튜토리얼 비디오를 시작했다. 내 요구 사항은 처음에 텍스트보기 텍스트를 "빨간색"으로 표시하고 5-10 초 후 "안녕하세요 빨간색"으로 변경해야합니다.타이머로 안드로이드 간단한 텍스트 뷰 텍스트 변경

두 가지 방법을 시도했습니다. 첫 번째 방법에서는 두 번째 방법은 주어진 지연 후 응용 프로그램을 시작하고 나에게 "안녕하세요 빨간색"텍스트를 직접 표시하는 동안 그것에게 예외를 제공합니다. 여기에 몇 가지 기본 개념이 빠져있을 수도 있습니다. 너 나 좀 도와 줄래?

 TextView myText; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    myText = (TextView)findViewById(R.id.displayTv); 
    // ------ first method start --------- 
    Thread timer = new Thread(){ 
     public void run(){ 
      try{ 
       sleep(6000); 
      }catch(InterruptedException e){ 
       e.printStackTrace(); 
      }finally{ 
       myText.setText("Hello red"); 
      } 
     } 
    }; 
    timer.start(); 
    // ------ first method end --------- 
    // ------ second method start --------- 
    try { 
     Thread.sleep(10000); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 

    myText.setText("Hello red"); 
    // ------ second method end --------- 
} 

}

답변

4

처리기를 사용하려고

Handler h=new Handler(); 
h.postDelayed(new Runnable(){ 
public void run(){ 
//change your text here 
} 
}, time_delay); 
4
_tv = (TextView) findViewById(R.id.textView1); 
    tv2 = (TextView) findViewById(R.id.textView2); 
    _tv.setText("red"); 
    _t = new Timer(); 

    _t.scheduleAtFixedRate(new TimerTask() { 
      @Override 
      public void run() { 
       _count++; 

       runOnUiThread(new Runnable() //run on ui thread 
       { 
        public void run() 
        { 
        tv2.setText(""+_count); 
        if(_count==5) 
        { 
        _tv.setText("hello red"); 
        _tv.setTextColor(Color.RED); 
        } 
       } 
       }); 
      } 
     }, 1000, 1000); 
관련 문제