【发布时间】:2015-07-12 04:54:17
【问题描述】:
为什么这不会改变我的 TextView 的文本?我有一个 TextView 我尝试从 view.post 方法修改的文本。我在这里做错了什么?
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();
这在 Activity 的 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:
现在我完全糊涂了。当我从附加到 Activity 中的按钮的 onClickListener 运行相同的代码时,TextView 的文本确实被操纵了。为什么onCreate 方法中没有发生这种情况?
【问题讨论】:
标签: android view java-threads