0

アプリケーションに を実装しようとしてきたRunnableので、簡単な手順から始めましたが、これでも には何も表示されませんTextView。驚いたことに、オブジェクトの をオーバーライドしましたrun()が、まだ表示されません。

package com.example.filer;
public class Filesearcher extends Activity implements Runnable {

TextView tvtis;
Thread tr;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_filesearcher);
    tvtis = (TextView) findViewById(R.id.tvfirst);
    tr = new Thread();
    tr.start();
}

@Override
public void run() {
    // TODO Auto-generated method stub
    try {
        Thread.sleep(5000);
        tvtis.setText("Started");
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
}
4

3 に答える 3

1

変化する

tr = new Thread();

tr = new Thread(this);
于 2013-09-29T18:38:46.550 に答える
0

UI スレッド以外のスレッドから UI を変更することはできません。手段-スレッドはおそらく正常に機能しますが、tvis.setText()(そのスレッド内から)機能しません。代わりに単純なものを試してLog.d("tag", "does it work?")、スレッドが実行されるかどうかを確認してください。

于 2013-09-29T18:39:22.797 に答える