gpt4 book ai didi

android - 切换 ChoiceMode 时 Android ListView 选择更改的问题

转载 作者:行者123 更新时间:2023-11-29 14:53:38 25 4
gpt4 key购买 nike

我在尝试清除 ListView 中项目的选择(选择)时遇到了一个奇怪的行为。该代码运行良好,具有允许(一次在 CHOICE_MODE_MULTIPLE 中)通过点击选择单个项目、全选、全选和反转当前选择的功能。由于 ListView 应该在两种模式(_NONE 和 _MULTIPLE)下工作,我有这个菜单项可以在这些模式之间切换,允许用户“打开”一个项目或一次选择多个项目以进行批量操作。

我面临的问题仅在将选择模式从 CHOICE_MODE_MULTIPLE 更改回 CHOICE_MODE_NONE 时出现。我要做的是不仅恢复到 CHOICE_MODE_NONE,而且清除所有选择。奇怪的是,虽然所有功能都可靠地工作,但当我在更改回 CHOICE_MODE_NONE 之前调用“select non”功能时,所有项目都会保持选中状态,无论我在代码中何时何地调用“select none”功能。

处理选择变化的函数如下:

private void changeItemSelection(int selection) {
NotesAdapter adapter = (NotesAdapter)listView.getAdapter();

if (selection == SELECT_ALL) {
for(int iCount = 0; iCount < adapter.getCount(); iCount++) {
listView.setItemChecked(iCount, true);
}
}
else if (selection == SELECT_NONE) {
for(int iCount = 0; iCount < adapter.getCount(); iCount++) {
listView.setItemChecked(iCount, false);
}
}
else if (selection == SELECT_INVERT) {
for(int iCount = 0; iCount < adapter.getCount(); iCount++) {
listView.setItemChecked(iCount, !listView.isItemChecked(iCount));
}
}
adapter.notifyDataSetChanged();
checkedItemCountInvalid = true; // Invalidate checked indices cache
}

这是当用户点击切换选择模式的菜单项时发生的情况:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_multisel:
toggleSelectionMode();
return true;
default:
return super.onOptionsItemSelected(item);
}
}

private void toggleSelectionMode() {
if (listView.getChoiceMode() == ListView.CHOICE_MODE_NONE) {
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}
else {
listView.setChoiceMode(ListView.CHOICE_MODE_NONE);
}
changeItemSelection(SELECT_NONE);
}

无论我将“changeItemSelection(SELECT_NONE)”放在上面代码块的什么位置,它都不起作用。但是当我删除“listView.setChoiceMode(ListView.CHOICE_MODE_NONE)”时,它神奇地开始按预期工作。这让我疯狂...我真的很感激任何对此的见解。

感谢阅读!

编辑:我所说的“不工作”是指选择保持不变。因此,如果选择了 item1 和 item3,调用 select none 不会取消选中它们,但只有当我在上面提到的代码部分调用该函数时才会取消选中它们。在不尝试更改选择模式的情况下调用 select none 工作得很好。

最佳答案

我遇到了同样的问题。好像已经有了related question得到的答案表明这是 Android 中的错误。

我想这应该是评论,而不是回答。但我只是没有足够的声誉在这里发表评论。

关于android - 切换 ChoiceMode 时 Android ListView 选择更改的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11382539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com