好的,现在我有一个包含一些旋转器的类A,值将由扩展AsnycTask的B类填充,它从Web服务中获取微调值.在B类中,我设法检索值,在Toast中显示.现在的问题是如何将这些微调值重新传递给A类?
我试过了
Can OnPostExcecute method in AsyncTask RETURN values?
将A类传递给B类,并将该值存储在A类公共变量中,如下所示
@Override protected void onPostExecute(String result) { classA.classAvariable = result; }
但是,无论何时我尝试阅读classAvariable我总是得到一个NullPointer异常.
似乎变量从未被分配给结果.
为了可读性,我需要分离B类,而不是使用内联类.
任何想法我的Java程序员?
解决方法
我想你正在设法读取A类变量之前.
尝试使用回调函数在回调函数中传递值并刷新您的旋转器.
尝试使用回调函数在回调函数中传递值并刷新您的旋转器.
您可以创建接口,将其传递给AsyncTask(在构造函数中),然后在onPostExecute中调用方法
例如:
你的界面:
public interface OnTaskCompleted{ void onTaskCompleted(values); }
你的活动:
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); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。