【发布时间】:2016-03-25 11:11:22
【问题描述】:
当前场景: 示例应用程序将来自多个 URL 的图像存储在 SD 缓存中,并将它们显示在 ListView 中。
任务:而不是在 MainActivity 的私有方法中获取硬编码的 URL,而是从放置在 URL 资源中的 JSON 数据中检索它们。
我正在检索 JSON 并很好地解析数据,但我在如何将解析后的数据发送到 MyImageLoaderAdapter 时遇到困难,因为返回的列表似乎稍后会出现..
文件: MainActivity.java
public class MainActivity extends Activity {
...
@Override
public void onCreate(Bundle savedInstanceState) {
...
try{
SimpleAsyncTask mTask = new SimpleAsyncTask();
mTask.execute(resource);
ArrayList list = mTask.list;
String[] strArray = new String[ list.size() ];
int length = strArray.length; // lenght = 0
mStrings = new String[ list.size() ];
int length = strArray.length;
for( int j = 0; j < length; j++ ) {
mStrings[j] = list.get(j).toString();
}
}catch (Exception e){}
// Create custom adapter for listview
adapter=new MyImageLoadAdapter(this, mStrings);
...
}
private String[] mStrings={
"http://resourse1.com",
"http://resourseN.com",
};
}
文件: SimpleAsyncTask.java
public class SimpleAsyncTask extends AsyncTask<String, String, String>{
ArrayList list = new ArrayList();
protected String doInBackground(String... uri) {
//working code
}
@Override
protected void onPostExecute(String response) {
super.onPostExecute(response);
...
return list //expected value;
}
}
【问题讨论】:
标签: java android json android-asynctask runnable