为什么不返回值?

时间:2014-03-16 14:03:32

标签: android arraylist return

为什么此方法不返回数据?我不明白。 我可以在循环中打印数据,但不返回数据。 提前谢谢。

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;
}

}

3 个答案:

答案 0 :(得分:1)

你的AsyncHttpClient正在创建一个在后台运行的线程。但是,这会导致函数返回而不等待回调将检索到的数据存储在结果列表中。结果是返回一个空列表。

答案 1 :(得分:0)

这是一个异步调用,不阻止UI线程。您可以在onSuccess回调中获得操作的结果,但在返回时您的arraylist仍然是空的。

答案 2 :(得分:0)

在finally块中写入代码。 在try块之后,即使存在异常,finally中的代码也会执行。

enter image description here