Alterar ListView choiceMode de singleChoice para multipleChoiceModal

Eu tenho um ListView que normalmente é osingleChoice choiceMode. Quando o usuário pressiona longamente um item, eu quero entrar em um modo de ação que permite selecionar vários itens para que eles possam executar uma ação em qualquer item selecionado.

Eu sou capaz de configurar oListView de modo que esteja emsingleChoice modo e o usuário pode selecionar itens de lista para exibir um fragmento de detalhes próximo a ele e ter o próprio item de lista mostrado em seu estado ativado.

Eu também sou capaz de configurar oListView de modo que está nomultipleChoiceModal choiceMode e executar um toque longo em um item inicia o modo de ação e permite seleções múltiplas, mas agora o ListView não permitirá uma seleção única no modo normal (nenhum modo de ação).

Como posso ter um ListView que está emsingleChoice modo e, em seguida, a transição paramultipleChoiceModal modo quando um item é pressionado por muito tempo?

Isso é o mais próximo que consegui:

definir o ListView parasingleChoice mododefinir o ListViewOnItemLongClickListener e nesse ouvinte:definir o ListViewOnItemLongClickListener paranulldefinir o ListViewchoiceMode paramultipleChoiceModalligarview.performClick() no item que foi pressionado por muito tempo.

Essa abordagem tem alguns problemas.

O modo de ação não é iniciado até a segunda vez que pressiono um item por muito tempo.Quando eu chamogetListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); emonDestroyActionMode Eu recebo umjava.lang.StackOverflowError porque esse método acaba tentando destruir o modo de ação também (mas nós ainda não retornamos do destroy).

questionAnswers(2)

yourAnswerToTheQuestion