Java Android凌空库数组列表总是空的?

Java Android凌空库数组列表总是空的?,java,android,arraylist,request,android-volley,Java,Android,Arraylist,Request,Android Volley,ArraylistcatPages始终为空。它应该在方法getPages()中填写,但在请求之后,它的大小为“0”且为空。为什么?如何存储此ArrayList而不丢失其值?你能帮我吗 public class ImageActivity extends ActionBarActivity { int frIndex; ProgressDialog pDialog; Context context; String catalog_id; private

Arraylist
catPages
始终为空。它应该在方法
getPages()
中填写,但在请求之后,它的大小为“0”且为空。为什么?如何存储此ArrayList而不丢失其值?你能帮我吗

public class ImageActivity extends ActionBarActivity {

    int frIndex;
    ProgressDialog pDialog;
    Context context;
    String catalog_id;

    private static final String TAG = ImageActivity.class.getSimpleName();
    private static String url = "api_url";
    private static String full_url;
    public static ArrayList<Pages> catPages;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        context = this;
        catalog_id = getIntent().getStringExtra("catalog_id");
        full_url = url + "/" + catalog_id;

        if(savedInstanceState!=null)
        {
            catPages = (ArrayList<Pages>) savedInstanceState.getSerializable("catPages");

        }
        else
        {
            catPages = new ArrayList<Pages>();
            getPages();
        }


        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        frIndex = getIntent().getIntExtra(Constants.Extra.FRAGMENT_INDEX, 0);
        Fragment fr = null;
        String tag ="";
        int titleRes;



        if(frIndex == ImagePagerFragmentBase.INDEX)
        {

            tag = ImagePagerFragmentBase.class.getSimpleName();
            fr = getSupportFragmentManager().findFragmentByTag(tag);
            String s = catPages.get(0).getPhoto_medium_url();
            if (fr == null) {
                fr = new ImagePagerFragmentBase();
                fr.setArguments(getIntent().getExtras());
            }

        }
        else if(frIndex==ImageGalleryFragmentBase.INDEX)
        {

            tag = ImageGalleryFragmentBase.class.getSimpleName();
            fr = getSupportFragmentManager().findFragmentByTag(tag);
            String s = catPages.get(0).getPhoto_medium_url();

            if (fr == null) {
                fr = new ImageGalleryFragmentBase();
                Bundle bundleObject = new Bundle();
                bundleObject.putString("catalog_id",catalog_id);
                fr.setArguments(bundleObject);
            }


        }
        titleRes = R.string.app_name;
        setTitle(titleRes);
        getSupportFragmentManager().beginTransaction().replace(android.R.id.content, fr, tag).addToBackStack("fragment").commit();



    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Fragment fr;
        String tag;
        switch (item.getItemId()) {
            case android.R.id.home:

                tag = ImagePagerFragmentBase.class.getSimpleName();
                if (new ImageGalleryFragmentBase() == getSupportFragmentManager().findFragmentByTag(tag)) {

                    getFragmentManager().popBackStack();
                   // finish();
                    return true;

                } else {
                    getFragmentManager().popBackStack();
                  //  finish();

                    return true;
                }

            default:
                return super.onOptionsItemSelected(item);
        }
    }

    public void getPages() {

        pDialog = new ProgressDialog(this);
        // Showing progress dialog before making http request
        pDialog.setMessage("Loading...");
        pDialog.show();

        JsonObjectRequest catReq = new JsonObjectRequest(Request.Method.GET, full_url, null, new Response.Listener<JSONObject>() {


            @Override
            public void onResponse(JSONObject response) {
                Log.d(TAG, response.toString());


                hidePDialog();

                // Parsing json

                try {

                    JSONObject obj = response.getJSONObject("result");
                    JSONObject catalog = obj.getJSONObject("catalog");
                    JSONArray pageArray = catalog.getJSONArray("pages");
                    for (int i = 0; i < pageArray.length(); i++) {

                        Pages page = new Pages();
                        JSONObject object = (JSONObject) pageArray.get(i);
                        page.setId(object.getString("id"));
                        page.setCatalog_id(object.getString("catalog_id"));
                        page.setPhoto_file_name(object.getString("photo_file_name"));
                        page.setPhoto_file_size(object.getString("photo_file_size"));
                        page.setPhoto_medium_url(object.getString("photo_medium_url"));
                        page.setPhoto_original_url(object.getString("photo_original_url"));

                        catPages.add(page);
                        Log.e("CATPAGES", String.valueOf(catPages.size()));

                    }



                } catch (JSONException e) {
                    e.printStackTrace();
                }



            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG, "Error: " + error.getMessage());
                hidePDialog();
                Log.e("Hata", "errorresponse ");


            }


        }) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("email", "api_header");

                return headers;
            }

        };

        AppController.getInstance().addToRequestQueue(catReq);


    }


    @Override
    public void onSaveInstanceState(final Bundle outState) {

        outState.putSerializable("catPages",catPages);
        super.onSaveInstanceState(outState);
    }



    private void hidePDialog() {
        if (pDialog != null) {
            pDialog.dismiss();
            pDialog = null;
        }
    }
}
公共类ImageActivity扩展了ActionBarActivity{
内弗林德斯;
ProgressDialog;
语境;
字符串目录标识;
私有静态最终字符串标记=ImageActivity.class.getSimpleName();
私有静态字符串url=“api_url”;
私有静态字符串完整url;
公共静态ArrayList catPages;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
上下文=这个;
catalog_id=getIntent().getStringExtra(“catalog_id”);
完整url=url+“/”+目录id;
如果(savedInstanceState!=null)
{
catPages=(ArrayList)savedInstanceState.getSerializable(“catPages”);
}
其他的
{
catPages=newarraylist();
getPages();
}
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
frIndex=getIntent().getIntExtra(Constants.Extra.FRAGMENT_INDEX,0);
片段fr=null;
字符串标签=”;
内部标题;
if(frIndex==ImagePagerFragmentBase.INDEX)
{
tag=ImagePagerFragmentBase.class.getSimpleName();
fr=getSupportFragmentManager().findFragmentByTag(标记);
字符串s=catPages.get(0.getPhoto_medium_url();
如果(fr==null){
fr=新的ImagePagerFragmentBase();
fr.setArguments(getIntent().getExtras());
}
}
else if(frIndex==ImageGalleryFragmentBase.INDEX)
{
tag=ImageGalleryFragmentBase.class.getSimpleName();
fr=getSupportFragmentManager().findFragmentByTag(标记);
字符串s=catPages.get(0.getPhoto_medium_url();
如果(fr==null){
fr=新的ImageGalleryFragmentBase();
Bundle bundleObject=新Bundle();
bundleObject.putString(“目录id”,目录id);
fr.setArguments(bundleObject);
}
}
titleRes=R.string.app_name;
片名(片名);
getSupportFragmentManager();
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
返回super.onCreateOptions菜单(菜单);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
fr片段;
字符串标签;
开关(item.getItemId()){
案例android.R.id.home:
tag=ImagePagerFragmentBase.class.getSimpleName();
if(新ImageGalleryFragmentBase()==getSupportFragmentManager().findFragmentByTag(标记)){
getFragmentManager().popBackStack();
//完成();
返回true;
}否则{
getFragmentManager().popBackStack();
//完成();
返回true;
}
违约:
返回super.onOptionsItemSelected(项目);
}
}
public void getPages(){
pDialog=新建进度对话框(此对话框);
//在发出http请求之前显示进度对话框
设置消息(“加载…”);
pDialog.show();
JsonObjectRequest catReq=新的JsonObjectRequest(Request.Method.GET,full_url,null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
Log.d(TAG,response.toString());
hidePDialog();
//解析json
试一试{
JSONObject obj=response.getJSONObject(“结果”);
JSONObject catalog=obj.getJSONObject(“catalog”);
JSONArray pageArray=catalog.getJSONArray(“页面”);
对于(int i=0;i