Java Android无法清空listview项

Java Android无法清空listview项,java,android,eclipse,Java,Android,Eclipse,当我按下两次按钮时,我试图阻止我的listview项目追加。我尝试使用.Clear(),但我不知道放在哪里或如何放,有时它甚至会阻止项目填充或根本不清除项目 全球资讯: ArrayAdapter<CharSequence> adapter; ArrayList<MessageDetails> details; my refreshListView()方法: 刷新列表视图: private void refreshListView() { d

当我按下两次按钮时,我试图阻止我的listview项目追加。我尝试使用.Clear(),但我不知道放在哪里或如何放,有时它甚至会阻止项目填充或根本不清除项目

全球资讯:

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());