在我的Android应用程序中,我有一个listview,可以选择从中删除项目
在同一个屏幕上。删除按钮位于列表视图的底部
并且有一个用于删除项目和刷新列表视图的函数。
在列表视图的onClick()
中调用此函数。
这就是问题所在。
在删除按钮onClick
中,我首先检查了哪个项目要删除 -
if (ListView.INVALID_POSITION != mListView.getSelectedItemPosition()) {
//delete the selected item
}else{
//do nothing
}
因此,每当用户触摸删除按钮时,列表视图中的焦点将被删除,我们将无效作为列表视图位置,因此该项目不会被删除。
我还尝试将所选项的值存储在常量中,并在列表视图的onItemSelected()
方法中更新它,然后从删除按钮的onClick中删除条件
。这可行,但会导致另一个问题 - 如果用户点击空白区域,则列表视图中的焦点将被删除,并且看起来没有选择任何内容,但如果您按下删除按钮然后删除最后选择的项目,因为它来自恒定。
这是我面临的问题。 请建议做什么。
答案 0 :(得分:1)
选择仅在键盘模式下有用,在触摸模式下关闭,因此getSelectedItemPosition()
并不总是可靠的。
请阅读并执行此操作developer blog entry。
如果您想使用单个按钮,请将ListView
选择模式设置为Single / Mutliple,然后在按钮单击时,获取选中的项目并删除它们,之后刷新ListView
。
答案 1 :(得分:1)
尝试实施onitemclickListener()
并获取商品ID并删除在arrayadapter中点击的商品,方法是为该按钮实施onclick()
,然后调用adapter.notifyDataSetChanged();