Java Android凌空库数组列表总是空的?
ArraylistJava 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
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