当您在eclipse中使用adt,并告诉adt使用master/detail流创建一个新活动时,此方法将出现在其中一个片段中:

/**
 * Turns on activate-on-click mode. When this mode is on, list items will be
 * given the 'activated' state when touched.
 */
public void setActivateOnItemClick(boolean activateOnItemClick) {
    // When setting CHOICE_MODE_SINGLE, ListView will automatically
    // give items the 'activated' state when touched.
    getListView().setChoiceMode(
            activateOnItemClick ? ListView.CHOICE_MODE_SINGLE : ListView.CHOICE_MODE_NONE);
}

但是,我想实现一个MultiChoiceModeListener。因此,这要求我消除对该方法的所有引用,因为它将删除所需的CHOICE_MODE_MULTIPLE_MODAL。但是,当ActionMode不活动时,我仍然希望在从列表中选择其中一个项目后,单个项目显示为“已激活”,因为我仍在显示该项目的详细信息。(显然,在适当的时候进行转换)有没有办法做到这一点?

最佳答案

但是,我仍然希望在
在ActionMode未处于活动状态时从列表中选择其中一个,
因为我还在展示那个东西的细节。(显然,转换
在适当的时候)有办法这样做吗?
首先,你想做的事似乎有点违反直觉。当上下文操作栏未显示时,将激活一行,但允许用户选择多行(?)!)当cab存在时(当cab存在并且用户选择了不同的行时,details面板会发生什么情况?!!)当选择(激活)多行时取消CAB会发生什么情况?当出租车被解雇时,细节小组会发生什么?
无论如何,可能最简单的方法就是保留生成的方法(以及选择模式)并丢失MultiChoiceListener。相反,您将为模拟ActionModeListView管理自己的MultiChoiceModeListenerActionMode将从OnItemLongClickListener上的ListView触发。

10-08 14:11