TextView のテキストが変更されないのはなぜですか? TextView
view.post メソッドから変更しようとしているwho のテキストがあります。ここで何が間違っていますか?
mTextView = (TextView)findViewById(R.id.text_view);
new Thread(new Runnable() {
@Override
public void run() {
mTextView.post(new Runnable(){
@Override
public void run() {
mTextView.setText("A change in text, thank you very much");
}
});
}
}).start();
これはアクティビティの onCreate() メソッドで実行されます。ただし、ハンドラーを定義して Runnable をハンドラーに渡すと、TextView が変更されます。
編集:ここにあるコードは、例に基づいています:
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
final Bitmap bitmap =
loadImageFromNetwork("http://example.com/image.png");
mImageView.post(new Runnable() {
public void run() {
mImageView.setImageBitmap(bitmap);
}
});
}
}).start();
}
http://developer.android.com/guide/components/processes-and-threads.htmlで
編集2:今、私は完全に混乱しています。アクティビティのボタンにアタッチされた onClickListener から同じコードを実行すると、TextView のテキストが実際に操作されます。onCreate
メソッドでこれが起こらなかったのはなぜですか?