在Listview上删除按钮

时间:2012-10-25 05:36:38

标签: android listview

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

请阅读并执行此操作developer blog entry

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

答案 1 :(得分:1)

尝试实施onitemclickListener()并获取商品ID并删除在arrayadapter中点击的商品,方法是为该按钮实施onclick(),然后调用adapter.notifyDataSetChanged();