我有一个ListView和一个自定义适配器,我希望用它来填充异步任务中的String和Image。我必须从URL获取图像,从文本文件中获取String。这是可能的,但是,我没有解决的是如何将适配器分配给列表视图,因为这必须从主线程完成。
感谢任何帮助。
答案 0 :(得分:1)
我还没有解决的是如何将适配器分配给列表视图,因为这必须从主线程完成。
这样做AsyncTask
的{{3}}。
如何运行异步任务,然后在主线程上使用返回的变量?
没有"返回值"来自AsyncTask
。
答案 1 :(得分:1)
使用in onPostExecute()
,在适配器getView
(或类似)方法中启动新的方法。在doInBackground
内你可能知道该怎么做,然后只返回AsyncTask
结果,例如Bitmap
(注意,通用!)
答案 2 :(得分:1)
将适配器的接口解析为异步任务,并从onPostExecute()
调用接口。像魅力一样工作
答案 3 :(得分:1)
如果我们没有看到您正在处理的一行代码,那么建议真的很难。在任何情况下,根据您的要求,您必须在AsynTask的onPostExecute
中执行此操作。你添加这样的东西:
@Override
protected void onPostExecute(SomeResultType results)
{
//your code to do stuff on UI thread goes here...
}
看看the discussions and selected answer here. 我希望这会有所帮助。
答案 4 :(得分:1)
您无法在主线程中使用doInBackground中返回的变量。使用onPostExecute方法中的变量来完成任务。