Java Android无法清空listview项
当我按下两次按钮时,我试图阻止我的listview项目追加。我尝试使用.Clear(),但我不知道放在哪里或如何放,有时它甚至会阻止项目填充或根本不清除项目 全球资讯:Java Android无法清空listview项,java,android,eclipse,Java,Android,Eclipse,当我按下两次按钮时,我试图阻止我的listview项目追加。我尝试使用.Clear(),但我不知道放在哪里或如何放,有时它甚至会阻止项目填充或根本不清除项目 全球资讯: ArrayAdapter<CharSequence> adapter; ArrayList<MessageDetails> details; my refreshListView()方法: 刷新列表视图: private void refreshListView() { d
ArrayAdapter<CharSequence> adapter;
ArrayList<MessageDetails> details;
my refreshListView()方法:
刷新列表视图:
private void refreshListView()
{
details = new ArrayList<MessageDetails>();
MessageDetails Detail;
Detail = new MessageDetails();
for (int i =0; i < itemName.size(); i++)
{
float totalprice = itemPrice.get(i) * Quantity.get(i);
Detail = new MessageDetails();
Detail.setitemName(itemName.get(i));
Detail.setItemDescription(description.get(i));
Detail.setitemPrice(String.valueOf(totalprice));
Detail.setQuantity(Quantity.get(i).toString() + " sets");
Detail.setDate(purchaseDate.get(i).toString());
details.add(Detail);
}
mCustomAdapter = new CustomAdapter(details , getActivity());
myInfoList.setAdapter(mCustomAdapter);
}
private void refreshListView()
{
详细信息=新的ArrayList();
详细信息;
Detail=新消息details();
对于(int i=0;i
您将两个不同的适配器
实例提交到列表视图
,后者覆盖前一个实例。因此,您应该保留对CustomAdapter
的引用,并编写一个方法来清除数据集
CustomAdapter mCustomAdpater = new CustomAdapter(details , getActivity());
myInfoList.setAdapter(mCustomAdpater);
在CustomAdapter内部,编写自己的clear()
方法,并在onClick()内部调用
mCustomAdpater.clear();
这对我很有用:
listview.removeAllViewsInLayout();
listview.removeAllViewsFromAdapter();
listview.setAdapter(null);
listview.refreshDrawableState();
listview.removeViews(0, listview.getChildCount());
refreshListView()在aync任务-sendPostData()中?是的,带有其他代码,但它不影响适配器。您是否看到来自两个适配器的项目?嗯,删除了第一个适配器。。但是McCustomAdapter没有。cleardidi你写了CustomAdapter?
CustomAdapter mCustomAdpater = new CustomAdapter(details , getActivity());
myInfoList.setAdapter(mCustomAdpater);
mCustomAdpater.clear();
listview.removeAllViewsInLayout();
listview.removeAllViewsFromAdapter();
listview.setAdapter(null);
listview.refreshDrawableState();
listview.removeViews(0, listview.getChildCount());