0

在我的 android 应用程序中,我有一个列表视图,可以选择在同一屏幕上从中删除项目。删除按钮位于列表视图的底部,有一个用于删除项目和刷新列表视图的函数。正在onClick()列表视图中调用此函数。这就是问题所在。

在删除按钮中,onClick我首先检查了要删除的项目 -

if (ListView.INVALID_POSITION != mListView.getSelectedItemPosition()) {
 //delete the selected item
}else{
 //do nothing
}

因此,每当用户触摸删除按钮时,列表视图中的焦点就会被移除,并且我们作为列表视图位置无效,因此该项目不会被删除。

我还尝试将所选项目的值存储在一个常量中并在列表视图的onItemSelected()方法中更新它,然后从删除按钮的 onClick 中删除条件。这可行但会导致另一个问题 - 如果用户点击空白区域,则列表视图中的焦点是删除并且似乎没有选择任何内容,但是如果您按下删除按钮,然后它会删除最后一个选定的项目,因为它来自一个常数。

这是我面临的问题。请建议该怎么做。

4

2 回答 2

1

选择仅在键盘模式下有用,它在触摸模式下关闭,因此getSelectedItemPosition()并不总是可靠的。

阅读此开发人员博客条目中的注意事项。

如果您想使用单个按钮,请将ListView选择模式设置为单/多,然后,在单击按钮时,获取选中的项目并将其删除,然后刷新ListView

于 2012-10-25T05:42:15.877 回答
1

尝试通过实现按钮和下一个调用来实现onitemclickListener()并获取项目ID并删除在arrayadapter中单击的项目onclick()adapter.notifyDataSetChanged();

于 2012-10-25T05:47:33.297 回答