【发布时间】:2014-06-05 13:16:38
【问题描述】:
我不知道如何从嵌入在ArrayList 中的AsyncTask 返回对象。现在,如果我尝试将tours.add(tour); 添加到AsyncTask 内的列表中,则返回的return tours; 始终为空。
我怎样才能从AsyncTask 内部退出并成功地将这些对象返回到我的MainActivity??
具有 ArrayList 的类:
public class JsonParser {
List<Tour> tours = new ArrayList<Tour>();
ToursDataSource datasource;
private String LOGTAG;
//Context ctx;
//public JsonParser(Context context){
// ctx = context;
//}
public List<Tour> startJson(Context context) {
AsyncHttpClient client = new AsyncHttpClient();
client.get("http://edmondvarga.com/android_dev/party_alarm/test_j.php",
new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
try {
JSONObject jsonObj = new JSONObject(response);
JSONArray contacts = jsonObj.getJSONArray("users");
for (int i=0; i< contacts.length();i++){
JSONObject json = contacts.getJSONObject(i);
Tour tour = new Tour();
tour.setTitle(json.getString("title"));
//String c = json.getString("content");
Log.i(LOGTAG, "Tour created with id:" +tour.getTitle());
tours.add(tour);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
return tours;
}
}
参与我的 MainActivity:
public void createData() {
JsonParser jp = new JsonParser();
List<Tour> tours = jp.startJson(this);
//ToursPullParser parser = new ToursPullParser();
//List<Tour> tours = parser.parseXML(this);
for (Tour tour : tours) {
datasource.create(tour);
}
【问题讨论】:
标签: android arraylist android-asynctask return