Java listview未刷新如何清除listview项?

Java listview未刷新如何清除listview项?,java,android,android-listview,Java,Android,Android Listview,我正在使用一个自定义适配器类。以及使用游标从数据库检索数据。当用户单击按钮时,它将打开一个带有单个选择列表的自定义对话框,当用户从中选择项目时,将弹出一个列表。每次用户选择一个项目时,列表都必须刷新 我的问题是列表项将附加到上一个列表,而不是刷新 代码--> 公共类ChannelListActivity扩展活动{ 私有游标; 私有游标; 公共胸径数据库; 私有ArrayList频道和分级; 私有HashMap-hm; 私有静态最终字符串CHANNEL\u NAME\u KEY=“CHANNEL\

我正在使用一个自定义适配器类。以及使用游标从数据库检索数据。当用户单击按钮时,它将打开一个带有单个选择列表的自定义对话框,当用户从中选择项目时,将弹出一个列表。每次用户选择一个项目时,列表都必须刷新

我的问题是列表项将附加到上一个列表,而不是刷新

代码-->

公共类ChannelListActivity扩展活动{
私有游标;
私有游标;
公共胸径数据库;
私有ArrayList频道和分级;
私有HashMap-hm;
私有静态最终字符串CHANNEL\u NAME\u KEY=“CHANNEL\u names”;
私有静态最终字符串评级key=“评级”;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageButton tv_按钮=(ImageButton)findViewById(R.id.tv_菜单);
最终ListView ListView=(ListView)findViewById(R.id.list);
channelAndRating=新的ArrayList();
final myBaseAdapter baseadapter=新的myBaseAdapter(channelAndRating,ChannelListActivity.this);
试一试{
db=新的胸径(本);
}捕获(IOE2异常){
e2.printStackTrace();
}
试一试{
db.createdatabase();
}捕获(IOE异常){
e、 printStackTrace();
}
opendatabase();
countryCursor=db.dataCountryName();
countryCursor.moveToFirst();
最终字符串country_names[]=新字符串[countryCursor.getCount()];
最终字符串country_id[]=新字符串[countryCursor.getCount()];
对于(int-icount=0;icount对于(int icount=0;icount您忘记在再次填充列表之前清除列表

当需要刷新时,首先执行
channelAndRating.clear();

您可以更新
myBaseAdapter
类并向其添加clear方法:

class myBaseAdapter extends BaseAdapter{
      private ArrayList<HashMap<String,Object>> cAndr;
      private LayoutInflater mInflater;
      //.... Other stuff here
      public void clear(){
          cAndr.clear();
      }
}
类myBaseAdapter扩展了BaseAdapter{
私人ArrayList cAndr;
私人停车场;
//……这里还有其他东西
公共空间清除(){
cAndr.clear();
}
}

旁注:在Java中,类名总是以大写字母开头。我会重命名
myBaseAdapter
,取而代之的是
myBaseAdapter
,哦,我粘贴了错误的代码,它是基本适配器,不是数组适配器。我编辑了它。@johnsmith啊,好的,只是更新了我的答案,请看一下。
class myBaseAdapter extends BaseAdapter{
      private ArrayList<HashMap<String,Object>> cAndr;
      private LayoutInflater mInflater;
      //.... Other stuff here
      public void clear(){
          cAndr.clear();
      }
}