2

カスタム ListView には TextView があり、そのテキストは 1 分ごとに現在の時刻と日付に定期的に変更する必要があります。

だから私はこれをしました:

Timer mTimer = new Timer();
mTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {

currentTime = System.currentTimeMillis();
(holder.myText).setText(new Date(currentTime));
}
}, 0, 60000);

カスタム アダプタの getView で。

初めてアダプタを設定するときに getView が呼び出されるため、初めて機能します。

次回は例外が発生します:

android.view.ViewRoot$CalledFromWrongThreadException: ビュー階層を作成した元のスレッドのみがそのビューにアクセスできます。

では、このコードを正確にどこで使用する必要がありますか?

私の練習自体が悪い場合は、これを達成する方法を教えてください。

ありがとうございました

4

2 に答える 2

4

UI スレッドではないスレッドから UI オブジェクトを更新することはできません。これを試して:

this.runOnUiThread(new Runnable(){
   @Override
   public void run(){
       //update your TextView here
   }   
})
于 2012-10-16T12:25:48.083 に答える
1

次のリンクの例を試すこともできます。

http://www.java2s.com/Code/Android/UI/TimingActivity.htm

于 2012-10-16T12:31:58.003 に答える