为什么此方法不返回数据?我不明白。 我可以在循环中打印数据,但不返回数据。 提前谢谢。
public static ArrayList getNewspapers(final Context context,String name){
final ArrayList<String> newspapersList = new ArrayList<String>();
AsyncHttpClient cli = new AsyncHttpClient();
cli.get("http://brnbyk.com/newspapers/islemler.php?islem=ulkebul&keyword="
+name, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String content) {
try {
JSONArray ja = new JSONArray(content);
for (int i = 0; i < ja.length(); i++) {
JSONObject jo = ja.getJSONObject(i);
newspapersList.add(jo.getString("adi"));
}
} catch (JSONException e) {
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
}
});
return newspapersList;
}
}
答案 0 :(得分:1)
你的AsyncHttpClient正在创建一个在后台运行的线程。但是,这会导致函数返回而不等待回调将检索到的数据存储在结果列表中。结果是返回一个空列表。
答案 1 :(得分:0)
这是一个异步调用,不阻止UI线程。您可以在onSuccess回调中获得操作的结果,但在返回时您的arraylist仍然是空的。
答案 2 :(得分:0)
在finally块中写入代码。 在try块之后,即使存在异常,finally中的代码也会执行。