1

私はAndroid開発の初心者です。今、テキストビュー コントロールを介してスレッドに現在のシステム時間を表示したいと考えています。いくつかの例を取得し、スレッドを開始してテキストビュー コントロールでテキストを描画できます。

しかし、以下のリンクからシステムの現在の時刻を取得しようとすると、 Android アプリケーションで現在の時刻と日付を表示すると、エラーが発生しました。この答えがうまくいかなかったのはなぜですか? どうも。

以下は参照用のコードです。

public class MainActivity extends Activity {
private TextView timeView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    new Thread(){
        public void run(){
                System.out.println("Thread is running!!");
                timeView = (TextView)findViewById(R.id.textView1);

                String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
                timeView.setText("I am Fired via Non-UI thread:"+s);
        }
    }.start();
}
4

1 に答える 1

2

スレッド内の UI を更新できません

 timeView.setText("I am Fired via Non-UI thread:"+s);

を使用しrunOnUiThreadます。インサイドスレッドの run メソッド

    runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                       timeView.setText("I am Fired via Non-UI thread:"+s);
                    }
                });

また、スレッド外でテキストビューを初期化します

     timeView = (TextView)findViewById(R.id.textView1)

こちらもチェック

http://developer.android.com/reference/java/text/DateFormat.html

インポートステートメントを確認してください。

import java.text.DateFormat // import this

それ以外の

import android.text.format.DateFormat;  
于 2013-09-25T14:58:52.790 に答える