当您在Eclipse中使用ADT并告诉ADT使用主/明细流创建新活动时,此方法将出现在其中一个片段中:
/**
* 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
未激活时,我仍然希望从列表中选择其中一个项目时,单个项目显示为“已激活”,因为我仍然显示该项目的详细信息。 (显然,在适当时切换)有没有办法去做呢?
答案 0 :(得分:1)
但是,我仍然希望个别项目在之后显示为“已激活” 当ActionMode未激活时,从列表中选择其中一个, 因为我仍在显示该项目的详细信息。 (显然,转换 在适当的时候)有没有办法去做呢?
首先,你想做什么似乎有点反直觉。当没有显示上下文操作栏时,您将激活一行,但是当CAB存在时,您将允许用户选择多行(?!)(当CAB存在时,详细信息面板会发生什么情况,用户选择各行?!)。当CAB被选中(激活)多行时被解雇会发生什么?当CAB被解雇时,细节面板会发生什么?
无论如何,做你想做的最简单的方法可能是保留生成的方法(以及选择模式)并丢失MultiChoiceListener
。相反,您将为模拟ActionMode
的{{1}}管理自己的ListView
。该MultiChoiceModeListener
将从ActionMode
上的OnItemLongClickListener
触发。