如何刷新ListView中的数据?(json& http)

时间:2015-11-17 19:37:58

标签: android json http android-listview response

首先,名为" user"的活动中有一个列表视图。 。在activity类中,我有一个每10秒运行一次的线程。该线程调用一个执行AsyncTask的函数。 AsyncTask执行http请求,响应由名为JSONparse的类解析。然后使用简单的适配器在for循环内的listview中使用数据。

这里的实际问题是旧数据保留在列表视图中,并且每10秒添加相同的元素。

onPostExecute在JSONparse类中:

private static final String TAG_OS = "istekler";
private static final String TAG_VER = "isim";
private static final String TAG_NAME = "istek";
private static final String TAG_API = "mesaj";

 protected void onPostExecute(JSONObject json) {
        try {
            // Getting JSON Array from URL
            android = json.getJSONArray(TAG_OS);
            for(int i = 0; i < android.length(); i++){
                JSONObject c = android.getJSONObject(i);

                // Storing  JSON item in a Variable
                String isim = c.getString(TAG_VER);
                String mesaj = c.getString(TAG_NAME);
                String istek = c.getString(TAG_API);

                // Adding value HashMap key => value

                HashMap<String, String> map = new HashMap<String, String>();

                map.put(TAG_VER, isim);
                map.put(TAG_NAME, mesaj);
                map.put(TAG_API, istek);

                oslist.add(map);
                list=(ListView)findViewById(R.id.list);

                ListAdapter adapter = new SimpleAdapter(user.this, oslist,
                        R.layout.list_v,
                        new String[] { TAG_VER,TAG_NAME, TAG_API }, new int[] {
                        R.id.isim,R.id.mesaj, R.id.istek});

                list.setAdapter(adapter);
                list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> parent, View view,
                                            int position, long id) {
                        Toast.makeText(user.this, "Parça: "+oslist.get(+position).get("istek"), Toast.LENGTH_SHORT).show();

                    }
                });

            }

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



    }

1 个答案:

答案 0 :(得分:0)

在您的代码中,您只需在列表中添加新元素即可。您应该调用oslist.clear()来删除旧数据。