gpt4 book ai didi

android - onPostExecute() 不能使用 MainActivity 元素

转载 作者:行者123 更新时间:2023-11-29 18:15:13 27 4
gpt4 key购买 nike

我有 doInBackground()。在函数之后,我想在 MainActivity 上更改一些 TextView。但是当我在主要 Activity 上触发该功能时,我在 TextView 行上得到了 NullPointerException

protected String doInBackground(Object... arguments) {

some code..

return result;
}

@Override
protected void onPostExecute(String result) {
if(result!=null)
new MainActivity().setScoreListUpdate(result);
}

主要 Activity :

public void setScoreListUpdate(String settings)
{
String[] yeniscore = settings.split("\\|");

if(yeniscore.length > 1)
{
birinci.setText(yeniscore[1]); << NULLPOINTEREXC.
}
}

最佳答案

这会产生 NullPointerException 的原因是您创建了 MainActivity 的新实例,而不是处理现有实例。

您需要做的是将对您的 Activity 的引用传递给 AsyncTask,然后在该引用上调用您的方法。

因此在您的 AsyncTask 类中您将有一个变量:

private MainActivity myMainActivity;

将构造函数添加到您的 AsyncTask 类:

public MyAsyncTaskClassName( MainActivity activity ) {
myMainActivity = activity;
}

然后在 onPostExecute 中你做:

myMainActivity.setScoreListUpdate(result);

关于android - onPostExecute() 不能使用 MainActivity 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8562674/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com