适配器更改后,Android Listview会保留旧项目

And*_*v23 5 android listview list listadapter

我尝试更改Android中Listview的内容.之后我想重新绘制列表.不幸的是列表元素发生了变化,但旧项目在后台显示.如果新列表中的项目较少,则旧项目仍然是列表的一部分,因为它们仍然显示,即使它们不可点击.如果我通过Android Taskmanager跳出应用程序,然后再次打开应用程序,列表将正确显示!因此我觉得刷新一定是个问题.

我该如何尝试实现它:

随着完整的内容更改,我创建了一个新的适配器,我将其传递给ListView.在我的代码中,"favorites"是我传递给适配器的新数组.我也尝试清除列表并使其无效.所有这些都发生在UI线程中(AsyncTask的onPostExecute)

    MyAdapter newAdapter = new MyAdapter(
            context, favorites);
    MyAdapter current_adapter = (MyAdapter) myList.getAdapter(); 
    if((current_adapter!=null)){
    current_adapter.clear();}

    myList.setAdapter(null); //inserted this because of answers, but with no effect.
    myList.setAdapter(newAdapter);
    myList.invalidateViews();
Run Code Online (Sandbox Code Playgroud)

适配器的明确方法:

    public void clear(){
    items.clear();
    notifyDataSetChanged();
    }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我在stackoverflow上尝试了所有类似问题的解决方案.不幸的是没有用......

提前感谢任何想法如何解决这个问题.

编辑:

我也尝试在传递新的适配器之前设置适配器null,也没有效果..setAdapter(NULL);

此外,如果我通过单击editText打开键盘,屏幕将刷新并正确显示列表.

Oma*_*hat 2

你有没有尝试过myList.setAdapter(null);