小编OnC*_*ner的帖子

使用notifyDataSetChanged()更新ExpandableListView

首先简要概述一下我的代码,我希望它是可以理解的:

  • 我有一个ToDoElement带有一些变量的类.
  • 我有另一个类ToDoListe来管理ToDoElementArrayList中的s.
  • ToDoListe包含从ArrayList中deleteElement()删除a 的方法ToDoElement
  • 在我的主要活动中,liste_activity我创建了一个对象,ToDoListe并用一些对象填充它ToDoElement.
  • 在同一个活动中,我有一个带有我自己的适配器的ExpandableListView expListAdapter.
  • 适配器通过获取ToDoElements 的String变量来创建Groupviews和Childviews .
  • 我为列表中的每个Group项创建了一个ContextMenu,我使用该方法deleteElement().

好的,现在这里是我的问题:

我使用的方法后deleteElement()我想更新我的List,因为ArrayList的数据已ToDoListe更改.所以我打电话expListAdapter.notifyDataSetChanged().
但随后我的整个活动崩溃,原因是:" IndexOutOfBoundException:索引4无效,大小为4 "(ToDoELement我的列表中有5个项目,在删除其中一个之前).
我知道这是因为我的一个for循环,但我不知道为什么.

代码片段:

创建ToDoListe的新对象:

private static ToDoListe Liste = new ToDoListe();
Run Code Online (Sandbox Code Playgroud)

class ToDoListe(只是重要的方法):

public class ToDoListe {

     private ArrayList<ToDoElement> ToDoListe;

     public ToDoListe()
     {
         ToDoListe = new ArrayList<ToDoElement>();
     }

     public void newElement(ToDoElement …
Run Code Online (Sandbox Code Playgroud)

android expandablelistview

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

expandablelistview ×1