AsyncHttpClient LoopJ 并保留来自 onSuccess 方法的数据

AsyncHttpClient LoopJ and preserving data from onSuccess method

我有一个名为 "invokeWS" 的方法。我想要做的就是用从 JSON 文件获取数据的列表数据 ArrayList 更新我在我的应用程序中使用的 ArrayAdapter 适配器 2。我尝试了不同的东西。

感谢阅读!

你可以做的是,在 onSuccess 之后传递你创建的 "listdata" 作为函数的参数(例如 "refreshData"):

    @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
            System.out.println("Inside Success invokeWS");
            try {
                JSONArray json = response.getJSONArray("Companies");
                System.out.println("JSON is parsed!" +json.toString() + "Length is " + json.length());
                System.out.println("First value is " + json.getString(0));
                int i;
                for (i=0;i<json.length();i++){
                    listdata.add(json.getString(i));
                 }
             System.out.println("Listdata contains" +listdata);
             refreshData(listdata);
             } catch (Exception e) {
                System.out.println("FAILED invokeWS");
                e.printStackTrace();
             }

        }

然后使用该函数用新列表更新数组:

public void refreshData(ArrayList<String> listdata){
    ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,
    android.R.layout.simple_spinner_item, listdata);
   sp1.setAdapter(adapter2);

}