【发布时间】:2017-08-02 15:23:54
【问题描述】:
我知道这很可能会被标记为重复,但这让我非常沮丧。在我的一生中,我无法找到一种从 AsyncTask 修改文本视图的方法。这是我在 MainActivity 类中的函数:
public void updateTextView(String data){
TextView textview = (TextView)findViewById(R.id.TextView1);
textview.setText(data);
}
然后在我的 AsyncTask 我有
@Override
protected void onPostExecute(String result) {
MainActivity ma = new MainActivity();
ma.updateTextView(result);
}
但是,在运行此代码和任何涉及尝试从 AsyncTask 修改 TextView 的修改后,我得到:
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'android.view.Window$Callback android.view.Window.getCallback()'
但是,当从主线程调用相同的函数时,它运行良好。
任何帮助将不胜感激。
【问题讨论】:
-
MainActivity ma = new MainActivity()???您正在尝试创建新活动? -
不要创建 MainActivity 的新实例!而是在创建 AsyncTask 时将实例作为参数传递并使用它来调用方法。
-
永远不要在任何活动类上调用
new。你只是在问这个问题。 -
点赞this
标签: java android android-asynctask