如何清除ListView,它只是在Android应用中的旧内容之后添加新内容?

时间:2015-11-25 22:56:52

标签: java android listview android-listview android-arrayadapter

我可以获得建议。

我正在尝试将内容添加到Android中的ListView中。

我传入一个ArrayList类型的String,设置一个适配器来传入该内容,然后将适配器传递给listView。

问题出现在内容确实显示的事实上,但是当我有时间运行活动时,新内容只列在旧内容之上。 e.g。

活动名称

item 1
item 2
---------
item 1 //repeats again but with new content
item 2
item 3

我试过了:

list.setAdapter(null);
arrayAdapter.clear();
arrayAdapter.notifyDataSetChanged();;

这些似乎都不起作用。强制关闭应用程序确实在正确的内容中绘制。

有任何问题请问。

public void fillListView(){


        arrayAdapter = new ArrayAdapter<String>(
                this,
                android.R.layout.simple_list_item_1,
                StartSearch.myList22 );              //fill adapter with content


        lv = (ListView)findViewById(R.id.listView2);

        lv.setAdapter(arrayAdapter);    //feed data to listview
    }

每次打开活动时,此方法都会运行,以便刷新内容。

2 个答案:

答案 0 :(得分:3)

制作你的

 StartSearch.myList22 as a Global variable and 

- &GT;当您获得新数据时,请尝试使用您的列表回答以下代码: -

 StartSearch.myList22.clear();
 StartSearch.myList22.addall(NewList);

- &GT;如果它仍然无法尝试下面的代码: -

 StartSearch.myList22.clear();
 StartSearch.myList22.addall(NewList);
 arrayAdapter = new ArrayAdapter<String>(
            this,
            android.R.layout.simple_list_item_1,
            StartSearch.myList22 ); 
lv.setAdapter(arrayAdapter);

-Thanks!〜!

答案 1 :(得分:0)

对不起,让我更具体一点。 我认为您不必将适配器设置为null并清除它

您可以将您设置的数组列表更改为

yourList.clear();
yourList.add(data);

数据集更改后,请致电:

 yourAdapter.notifyDataSetChanged();