如何在android中清除我的listview

如何在android中清除我的listview,android,listview,listadapter,Android,Listview,Listadapter,我已经在EMPLOYEE类中包含了我的ListAdapter。list1包含Empname的值, Eno,从webservices获取的工资。现在,在显示employee中的5条记录之后 屏幕…当我点击部门活动并返回员工。。。首字母 列表中追加了5条记录,现在有10条记录,以此类推。。。。这个过程是这样进行的。。。 请帮助我,以便没有重复的附加,它必须刷新列表 注意:clear()或notifydatasetchanged()、invalidate()不起作用 ListAdapter adapt

我已经在EMPLOYEE类中包含了我的ListAdapter。list1包含Empname的值, Eno,从webservices获取的工资。现在,在显示employee中的5条记录之后 屏幕…当我点击部门活动并返回员工。。。首字母 列表中追加了5条记录,现在有10条记录,以此类推。。。。这个过程是这样进行的。。。 请帮助我,以便没有重复的附加,它必须刷新列表

注意:clear()或notifydatasetchanged()、invalidate()不起作用

ListAdapter adapter = new SimpleAdapter(this, list1,
R.layout.employee, new String[] { "EmpName","Eno", "Salary" }, new int[]
 {R.id.ename, R.id.eno,R.id.sal});

    setListAdapter(adapter);
Listview lv = getListView();

    lv.setTextFilterEnabled(true);

    lv.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            pos = position;
            registerForContextMenu(getListView());

        }

    });


    TextView tvdept = (TextView) findViewById(R.id.Department); 
    tvdept.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
        startActivity(new Intent(Employee.this, Department.class));
        }
    });
ListAdapter=new simpledapter(这个,list1,
R.layout.employee,新字符串[]{“EmpName”、“Eno”、“Salary”},新int[]
{R.id.ename,R.id.eno,R.id.sal});
setListAdapter(适配器);
Listview lv=getListView();
lv.setTextFilterEnabled(真);
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
pos=位置;
registerForContextMenu(getListView());
}
});
TextView tvdept=(TextView)findViewById(R.id.Department);
tvdept.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
startActivity(新意图(员工、本部门、班级));
}
});

如果看不到更多的代码,很难确定,但我会冒险猜测一下

当您离开某个活动并返回时,框架会尝试将您恢复到使用
savedInstanceState
捆绑包的位置。它使用它来重新创建您上次在该活动中的位置。听起来您已经在
onCreate
方法中设置了列表,并且没有检查
savedInstanceState
捆绑包,因此当您返回到活动时,框架将恢复列表,然后进入代码并重新创建列表(在本例中,再次添加相同的数据)

尝试将列表创建代码包装在检查是否存在
savedInstanceState
捆绑包的
if

像这样:

@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   if (savedInstanceState == null) {
       // do your list setup here
   }
 }
使用这种方法,如果您返回到活动并且框架保存了您的状态,它将简单地恢复它,而不是运行列表创建代码


我知道这并不能回答实际问题,但它应该能解决根本问题(返回活动时复制列表数据)。

您是在setListAdapter(适配器)之前放了clear()还是notifydatasetchanged(),invalidate();或lv.notifydatasetchanged()。。。。。是的,我没有,它不起作用……它们实际上不适用于此列表适配器。您应该向我们展示包含该列表的整个方法。是否在您的
onCreate
方法中?是的。。它位于oncreate方法中。