如何在listview中动态加载记录

时间:2016-07-21 04:01:29

标签: android listview

嗨我是非常新的Android,在我的情况下,我有200条以上的记录,我必须在我的列表视图中显示所以它是burdon一次加载所有记录,这就是我要求server {{ 1}}然后基于偏移值服务器发送记录然后我显示offset value这个我写下面的代码,但records还添加了我的duplicate records我们如何解决?

我的代码非常清楚,我发送服务器链接也请帮帮我

代码: -

ArrayList

2 个答案:

答案 0 :(得分:0)

我也遇到同样的问题使用此代码。它会删除旧数据

protected void onPostExecute(String result) {
arrayList.clear();
        System.out.println("Result is"+result);

        if (result != null) {
            try {

                JSONArray array = new JSONArray(result);
                for (int i = 0; i < array.length(); i++) {
                    arrayList.add(array.getJSONObject(i).getString("title"));
                }

                System.out.println("arry list count is====>"+arrayList.size());
                adapter.notifyDataSetChanged();
                offset++;
               // offset = offset + 10;
                loadingMore = false;

            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            lv.removeFooterView(pb);
        }
    }

修改代码
我检查你的代码。你的json数据有问题, 否则你的Java编码是完美的 你有20条记录 每次发送偏移数据1,2,3等 那个时候你删除偏移值记录。(例如:偏移3删除1-3记录)。
更改你的json编码它将完美。

答案 1 :(得分:0)

您需要添加一个条件。用你的方法替换这个方法。

protected void onPostExecute(String result) {

            System.out.println("Result is"+result);

            if (result != null) {
                try {
                    if(arrayList.size>0)
                    {
                      arrayList.clear();
                    }
                    JSONArray array = new JSONArray(result);
                    for (int i = 0; i < array.length(); i++) {
                        arrayList.add(array.getJSONObject(i).getString("title"));
                    }

                    System.out.println("arry list count is====>"+arrayList.size());
                    adapter.notifyDataSetChanged();
                    offset++;
                   // offset = offset + 10;
                    loadingMore = false;

                } catch (Exception e) {
                    e.printStackTrace();
                }
            } else {
                lv.removeFooterView(pb);
            }
        }
    }