使用自定义简单适配器在单击按钮上删除并添加列表项

时间:2011-11-22 09:42:57

标签: android listview

我在列表视图中有一个页脚视图,其中包含一个“搜索”按钮,当我点击“搜索”按钮时,我想删除以前的数据并显示新的数据。我从Web服务获取数据并使用Async Task显示列表。 目前我无法删除以前的数据,当我点击“搜索”添加到同一列表中的数据时,它会显示旧的和新的两个数据。

如何刷新列表视图。任何形式的帮助将不胜感激。

这是我的代码:

MySimpleAdapter adapter = new MySimpleAdapter(HSLoc_tabActivity.this, data , R.layout.list_main, 
                    new String[] { "name", "distance" ,"address"}, 
                    new int[] { R.id.item_title, R.id.item_subtitle ,R.id.item_subtitle1 });
            //modeList.setAdapter(adapter);
            //adapter.clear();
            adapter.notifyDataSetChanged();
            listView.setAdapter(adapter);

            listView.invalidate();

谢谢!

3 个答案:

答案 0 :(得分:0)

首先在搜索按钮的click()中清除'data'(String [] 0r ArrayList []),然后将新信息添加到数据(String [] 0r ArrayList [])中,然后调用adapter的notifyDataSetChanged()。

仅举例:

 searchBtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
           data.clear(); // I m assuming this is ArrayList..

     // code for getting info from web and add it to data list.   

     adapter.notifyDataSetChanged();

        }
    });  

答案 1 :(得分:0)

在添加新项目之前尝试此操作:

adapter.clear();

答案 2 :(得分:0)

我已经编辑了你的代码。执行以下操作。

  MySimpleAdapter adapter = new MySimpleAdapter(HSLoc_tabActivity.this, data,
                               R.layout.list_main, 
                               new String[] { "name", "distance" ,"address"}, 
                               new int[] { R.id.item_title, R.id.item_subtitle ,R.id.item_subtitle1 });
 adapter.notifyDataSetChanged();
 listView.invalidateViews();
 listView.setAdapter(adapter);