当您在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
。相反,您将为模拟ActionMode
的ListView
管理自己的MultiChoiceModeListener
。ActionMode
将从OnItemLongClickListener
上的ListView
触发。