gpt4 book ai didi

android - 从 AsyncTask 类的 onPostExecute 方法返回值

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:26 26 4
gpt4 key购买 nike

好的,现在我有了 Class A,其中包含一些微调器,这些值将由 Class B 填充,它扩展了 AsnycTask 来获取微调器来自 Web 服务的值。在 B 类中,我设法检索值,显示在 Toast 中。现在的问题是如何将这些微调器值传递回 A 类?

我试过了

Can OnPostExcecute method in AsyncTask RETURN values?

通过将 Class A 传递给 Class B 并将值存储在 Class A 的公共(public)变量中,如下所示

@Override
protected void onPostExecute(String result)
{
classA.classAvariable = result;
}

但是,每当我尝试读取 classAvariable 时,我总是得到一个 NullPointer Exception。似乎变量从未分配给结果。出于可读性目的,我需要将 Class B 分开,而不是用作内联类。

我的 Java 程序员有什么想法吗?

最佳答案

我猜你正在尝试在设置 A 类变量之前读取它。尝试使用回调来做到这一点..在回调函数中传递值并刷新微调器..

您可以创建接口(interface),将其传递给AsyncTask(在构造函数中),然后调用onPostExecute中的方法

例如:

你的界面:

public interface OnTaskCompleted{
void onTaskCompleted(values);
}

您的 Activity :

public YourActivity implements OnTaskCompleted{
//your Activity
YourTask task = new YourTask(this); // here is the initalization code for your asyncTask
}

还有你的 AsyncTask:

public YourTask extends AsyncTask<Object,Object,Object>{ //change Object to required type
private OnTaskCompleted listener;

public YourTask(OnTaskCompleted listener){
this.listener=listener;
}

//required methods

protected void onPostExecute(Object o){
//your stuff
listener.onTaskCompleted(values);
}
}

关于android - 从 AsyncTask 类的 onPostExecute 方法返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13815807/

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