刷新OnClick方法中的数据?

时间:2016-04-24 10:59:07

标签: android android-layout listview

想要从服务器加载当前更新的数据,使用valley api(json response)。

onCreate仅首次加载数据。之后没有新数据添加到列表中。

在listview上加载数据(包含图像,文本)。

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_downloadimg);
        buttonrefresh = (Button) findViewById(R.id.btnrefresh);

        listView = (ListView) findViewById(R.id.listViewdoenload);

        listItems = new ArrayList<InfoData>();

        listAdapter = new CustomAdapter(this, listItems);
        listView.setAdapter(listAdapter);


        Cache cache = VolleySingleton.getInstance().getRequestQueue().getCache();
        Cache.Entry entry = cache.get(URL_FEED);
        if (entry != null) {
            // fetch the data from cache
            try {
                String data = new String(entry.data, "UTF-8");
                try {
                    parseJsonFeed(new JSONObject(data));
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }

        } else {
            // making fresh volley request and getting json
            JsonObjectRequest jsonReq = new JsonObjectRequest(Request.Method.GET,
                    URL_FEED, null, new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
                    VolleyLog.d(TAG, "Response: " + response.toString());
                    Log.d("Response: ", response.toString());
                    if (response != null) {
                        parseJsonFeed(response);
                    }
                }
            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.d(TAG, "Error: " + error.getMessage());
                }
            });

            // Adding request to volley request queue
            VolleySingleton.getInstance().addToRequestQueue(jsonReq);
        }

        buttonhome.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                refresh();
            }
        });

    }

1 个答案:

答案 0 :(得分:0)

listAdapter.notifyDataSetChanged();

之后,只需在buttonhome的{​​{1}}内添加OnClickListener