【发布时间】:2015-06-22 15:11:00
【问题描述】:
我有以下代码应该更新 Asynctask 上的 UI 文本视图:
public class HelloWorldActivity extends Activity
{
private static TextView txtview;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtview = (TextView) findViewById(R.id.mainview);
}
private static class SimpleTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... res) {
try {
Thread.sleep(1500);
} catch(InterruptedException exception) {
Thread.currentThread().interrupt();
}
return null;
}
@Override
protected void onPostExecute(Void params) {
txtview.setText("Hola Mundo");
}
}
}
特别是我正在尝试在 1.5 秒后将 Hello World 更改为 Hola Mundo。问题是,在运行应用程序时,文本仍然是 Hello World 并且不会改变。我没有任何错误。我什至在onCreate 方法之外设置了txtview 值以避免任何访问问题(或者我认为)。
如果在txtview = (TextView) findViewById(R.id.mainview); 之后我执行txtview.setText("Hola Mundo");,那么它可以完美运行。
可能是什么问题?
【问题讨论】:
-
你在哪里调用 AsyncTask ?
-
写新的 SimpleTask().executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);下面一行.. txtview = (TextView) findViewById(R.id.mainview);下面
标签: android android-layout android-fragments android-asynctask