删除多视图类型的列表项

时间:2014-12-11 10:04:52

标签: java android android-listview

我通过实现:

使用具有不同视图类型的ListView
public int getViewId();

哪个效果很好,但是在删除某个项目时会遇到NullPointerExceptions,因为在其上找不到视图元素。我认为这是由于查看回收,其中旧位置被错误的视图类型替换。

如何刷新布局并彻底重新渲染,所以这不会发生?

2 个答案:

答案 0 :(得分:2)

在变更适配器的基础列表时,notifyDataSetChangednotifyDataSetInvalidated是您的朋友。

答案 1 :(得分:0)

编辑ListView的数据源(List对象或其他内容),然后在适配器上调用notifyDataSetChanged()

public void updateMyListView(Element elementToRemove){
    listViewData.remove(elementToTemove);
    listView.getAdapter().notifyDatasetChanged(); 
}

编辑: 好的,您是否实施了getViewTypeCount()getItemViewType(int position)机制?