【发布时间】:2017-03-15 09:38:57
【问题描述】:
我遇到的问题是,每当我 delete 时,只会删除 ListView 中的最后一项。我从我的数组列表中删除该项目并调用adapter.notifyDataSetChanged()。有什么我想念的吗?此外,当我尝试删除太多项目时,我得到一个arrayIndexOutOfBounds 异常,但我传递了我收到的索引。为什么我会收到此异常?
public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
HistoryItem item = historyItems.get(index);
switch (index) {
case 0:
//ToDo edit
//Toast.makeText(History.this,"pos "+position+" index "+index,Toast.LENGTH_SHORT).show();
break;
case 1:
//ToDo delete
historyItems.remove(item);
adapter.notifyDataSetChanged();
【问题讨论】:
-
尝试按索引删除项目,例如
historyItems.remove(position); -
检查索引是否正确
-
我在案例 0 中评论的吐司给我的索引为 0,第一项的位置为 1...所以我认为我不应该使用该位置删除...跨度>
-
@sharanggupta 请检查他们的demo 索引用于识别单击了哪个视图以及单击了哪一行的位置。
-
谢谢@Kaushik!!!!我不敢相信我犯了这个错误!!!我被名称索引误导了......
标签: java android listview android-studio listadapter