gpt4 book ai didi

android - 我怎样才能有一个启动 Activity 的可选行和一个同时触发上下文菜单的复选框

转载 作者:行者123 更新时间:2023-11-29 01:57:13 27 4
gpt4 key购买 nike

在我的应用程序中,我有一个带有适配器的自定义 ListView 。在我的 ListView 中,我添加了一个带有 focusable=false 的复选框,以确保 listItem 仍然可聚焦。在 OnCheckedChangeListener 上,我调用 list.setItemChecked 以确保它触发上下文菜单。当一行被选中(而不是复选框)时,它正在启动一个 Activity 。 (编辑行内容)

在我的 Activity 中,我有这些行来在选择项目时启动上下文菜单(带有复选框)

transactionList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
transactionList.setMultiChoiceModeListener(multiChoiceMode);

问题是 因为在显示上下文菜单时出现 CHOICE_MODE_MULTIPLE_MODAL,我无法再次单击行。当我点击行时,它只会选择或取消选择行。

我正在考虑使用 CHOICE_MODE_MULTIPLE 而不是 CHOICE_MODE_MULTIPLE_MODAL 并自己开始操作,但我不知道是否有更好的方法来做我想做的事情。

事实上,我想要的正是 Gmail 应用程序。您可以选择行以执行自定义操作(删除、共享等),但您仍然可以单击行以查看电子邮件。 (即使弹出上下文菜单)

提前致谢!

附言。英语不是我的第一语言,但我很确定你能理解我在说什么。 (对于英文错误提前表示抱歉)

编辑 添加了一些代码,但我只想了解最好的做法。我知道这段代码使用了一半的旧方法,当上下文菜单打开时你不能点击一行,而我所做的重构的一半是手动触发操作栏 http://pastebin.com/Tig0qYcN

顺便说一句,我的代码在github上

适配器:https://github.com/Dalto/PersonalBankManager/blob/master/PersonalBankManager/src/org/madduck/personalbankmanager/model/adapter/TransactionAdapter.java

Activity :https://github[DOT]com/Dalto/PersonalBankManager/blob/master/PersonalBankManager/src/org/madduck/personalbankmanager/AccountFragment.java

请注意我的 github 代码可能会更改并且可能与问题无关

最佳答案

我自己修的。我不知道这是否可行,但它确实有效。

我在用

transactionList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

代替

transactionList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);

并在选中复选框时添加此代码

    if (transactionAdapter.countSelected() > 0) {
if (actionMode == null) {
actionMode = getActivity().startActionMode(multiChoiceMode);
}

NumberFormat amountFormat = NumberFormat.getCurrencyInstance();
actionMode.setTitle(amountFormat.format(transactionAdapter.getTotalAmountSelected()));
} else if (transactionAdapter.countSelected() == 0 && actionMode != null) {
actionMode.finish();
}

如果您更喜欢这里我在 github 上所做的提交:https://github.com/Dalto/PersonalBankManager/commit/b6f46f7261ae2eef1f7b6fb2d2258a0da1779211

如果有人找到更好的方法(我的意思是使用 Android API 的更简洁的方法),只需在之后发布它,它可能会对其他人有所帮助。

关于android - 我怎样才能有一个启动 Activity 的可选行和一个同时触发上下文菜单的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14488230/

27 4 0