如何在ListView上实现onStop()方法?

时间:2016-05-12 12:56:35

标签: android listview

我的Android应用程序上有一个ListView。当单击ListView项目并转到新活动时,当我按下后退按钮时,我登陆一个空的ListView。我没有得到任何数据。即使我重新启动应用程序,我也无法获得ListView上的任何数据。它只在我第一次运行应用程序时才有效。我是否必须覆盖onStop方法并重置我的ListView适配器?我该如何解决这个问题?

ListView活动

public class ViewGuidesActivity extends AppCompatActivity {

private static final String TAG = ViewGuidesActivity.class.getSimpleName();
private ProgressDialog pDialog;
private List<Guide> guideList = new ArrayList<Guide>();
private ListView listView;
private CustomListAdapter adapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_guides);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    listView = (ListView) findViewById(R.id.list);
    adapter = new CustomListAdapter(this, guideList);
    listView.setAdapter(adapter);

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

    // Creating volley request obj
    JsonArrayRequest movieReq = new JsonArrayRequest(AppConfig.URL_GET_GUIDE_LIST,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    Log.d(TAG, response.toString());
                    hidePDialog();

                    // Parsing json
                    for (int i = 0; i < response.length(); i++) {
                        try {

                            JSONObject obj = response.getJSONObject(i);
                            Guide guide = new Guide();
                            guide.setNgno(obj.getString("ngno"));
                            guide.setEmail(obj.getString("email"));
                            guide.setName(obj.getString("name"));


                            // adding movie to movies array
                            guideList.add(guide);

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

                    }

                    // notifying list adapter about data changes
                    // so that it renders the list view with updated data
                    adapter.notifyDataSetChanged();
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d(TAG, error.toString());
            VolleyLog.d(TAG, "Error: " + error.getMessage());
            hidePDialog();

        }
    });

    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(movieReq);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
            Guide newGuide = guideList.get(position);
            String email = newGuide.getEmail();
            String ngno = newGuide.getNgno();              

            Intent i = new Intent(getApplicationContext(), GuideDetails.class);
            i.putExtra("email", email);
            i.putExtra("ngno", ngno);
            startActivity(i);
        }
    });

}

private void hidePDialog() {
    if (pDialog != null) {
        pDialog.dismiss();
        pDialog = null;
    }
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    menu.getItem(1).setVisible(false);
    menu.getItem(2).setVisible(false);
    return true;
}  
}

ListAdapter

public class CustomListAdapter extends BaseAdapter {

private Activity activity;
private LayoutInflater inflater;
private List<Guide> guideItems;

public CustomListAdapter(Activity activity, List<Guide> guideItems) {
    this.activity = activity;
    this.guideItems = guideItems;
}

@Override
public int getCount() {
    return guideItems.size();
}
@Override
public Object getItem(int location) {
    return guideItems.get(location);
}
@Override
public long getItemId(int position) {
    return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView = inflater.inflate(R.layout.customrow, parent, false);       

    TextView ngno = (TextView) convertView.findViewById(R.id.txt_ListNgno);
    TextView name = (TextView) convertView.findViewById(R.id.txt_ListName);
    TextView email = (TextView) convertView.findViewById(R.id.txt_ListEmail);

    // getting guide data for the row
    Guide g = guideItems.get(position);
    //thumbNail.setImageUrl(m.getThumbnailUrl(), imageLoader);
    ngno.setText(g.getNgno());
    name.setText(g.getName());
    email.setText(g.getEmail());

    return convertView;
}
}

我该如何解决这个问题?

0 个答案:

没有答案