1

私はアンドロイドが初めてで、いくつかのチュートリアルビデオを始めたばかりです。私の要件は、最初にテキストビューのテキストを「赤」に表示する必要があり、5〜10秒後に「こんにちは赤」に変更する必要があることです。

私は2つの方法を交互に試しました。最初の方法では例外が発生しますが、2番目の方法では、指定された遅延の後にアプリケーションが開始され、「hello red」テキストが直接表示されます。ここでいくつかの基本的な概念が欠けている可能性があります。助けていただけませんか?

       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

2 に答える 2

4

ハンドラーを使用してみてください、

Handler h=new Handler();
h.postDelayed(new Runnable(){
public void run(){
//change your text here
}
}, time_delay);
于 2013-03-28T11:55:02.593 に答える
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 ); 
于 2013-03-28T12:05:34.720 に答える