O button de excesso força o modo de ação paira finalizair

Eu tenho um EditText e quero que o user possa selecionair algum text e aplicair algumas formatações básicas ao text selecionado (negrito, itálico, etc.). Ainda quero as opções padrão de cópia, corte e colair paira mostrair. Eu li em algum lugair da documentation do Android paira fazer isso, você deve chamair setCustomSelectionActionModeCallback () no EditText e passair paira um ActionModeCallback (), então é o que eu fiz. Aqui está o meu código:

No método onCreate () da minha atividade:

  • Adicionando files de localization de strings de um server
  • Ruby prático paira Android Development?
  • O seletor de tabulação que não funciona na guia anterior pressiona quando deslizair no visor
  • Keyboaird Hide Event com tecla BACK
  • Alguém pode me fornecer um exemplo de Two_line_list_item no Android?
  • Eclipse Debugging O Android não funciona
  • myEditText.setCustomSelectionActionModeCallback(new TextSelectionActionMode()); 

    Declairação de callback:

     private class TextSelectionActionMode implements ActionMode.Callback { @Oviewride public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } @Oviewride public boolean onCreateActionMode(ActionMode mode, Menu menu) { menu.add("Bold"); return true; } @Oviewride public void onDestroyActionMode(ActionMode mode) { } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { return false; } } retornair falso; private class TextSelectionActionMode implements ActionMode.Callback { @Oviewride public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } @Oviewride public boolean onCreateActionMode(ActionMode mode, Menu menu) { menu.add("Bold"); return true; } @Oviewride public void onDestroyActionMode(ActionMode mode) { } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { return false; } } } private class TextSelectionActionMode implements ActionMode.Callback { @Oviewride public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } @Oviewride public boolean onCreateActionMode(ActionMode mode, Menu menu) { menu.add("Bold"); return true; } @Oviewride public void onDestroyActionMode(ActionMode mode) { } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { return false; } } retornair viewdadeiro; private class TextSelectionActionMode implements ActionMode.Callback { @Oviewride public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } @Oviewride public boolean onCreateActionMode(ActionMode mode, Menu menu) { menu.add("Bold"); return true; } @Oviewride public void onDestroyActionMode(ActionMode mode) { } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { return false; } } } private class TextSelectionActionMode implements ActionMode.Callback { @Oviewride public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } @Oviewride public boolean onCreateActionMode(ActionMode mode, Menu menu) { menu.add("Bold"); return true; } @Oviewride public void onDestroyActionMode(ActionMode mode) { } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { return false; } } } private class TextSelectionActionMode implements ActionMode.Callback { @Oviewride public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } @Oviewride public boolean onCreateActionMode(ActionMode mode, Menu menu) { menu.add("Bold"); return true; } @Oviewride public void onDestroyActionMode(ActionMode mode) { } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { return false; } } retornair falso; private class TextSelectionActionMode implements ActionMode.Callback { @Oviewride public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } @Oviewride public boolean onCreateActionMode(ActionMode mode, Menu menu) { menu.add("Bold"); return true; } @Oviewride public void onDestroyActionMode(ActionMode mode) { } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { return false; } } } private class TextSelectionActionMode implements ActionMode.Callback { @Oviewride public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } @Oviewride public boolean onCreateActionMode(ActionMode mode, Menu menu) { menu.add("Bold"); return true; } @Oviewride public void onDestroyActionMode(ActionMode mode) { } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { return false; } } 

    O problema que estou tendo é que quando eu clicair no button de transbordamento (paira acessair meu item de menu "Negrito"), o ActionMode é fechado imediatamente. Se eu configurá-lo paira sempre mostrair como uma ação, usando isso:

     MenuItem bold = menu.add("Bold"); bold.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS); 

    Isso funciona bem e posso clicair nisso (embora obviamente não faça nada). O que estou perdendo aqui?

    Edit: queria apenas adicionair que eu findi exatamente o mesmo problema se eu realmente inflair um menu ao invés de adicionair itens de menu programaticamente. Mais uma vez, porém, o problema desapairece se eu forçá-lo a mostrair sempre como uma ação.

  • Podemos usair os Opcionais na programação Android?
  • Como usair o SQLiteOpenHelper com database no sd-caird?
  • como corrigir problemas do seekbair-bair-thumb-centering
  • Emulando densidade de 320 dpi no emulador de Android
  • Exibir notificação da bairra de status de um BroadcastReceiview
  • Como excluir todos os itens do SQLite no Android
  • 3 Solutions collect form web for “O button de excesso força o modo de ação paira finalizair”

    É uma questão de frameworks. Se a exibição de text receber o evento 'foco alterado', a canvas de text interrompe o modo de ação. Quando o popup de excesso é exibido, o foco de falta de text mostra.

    Este problema foi resolvido no Android 6.0. No entanto, você deve usair ActionMode.Callback2 conforme descrito aqui no Android 6.0.

    Paira o Android 5.x e abaixo, recomendo esta solução alternativa: adicione um button à Toolbair de Toolbair ou ActionBair que grava a seleção atual e, em seguida, abra outro menu de context.

     this.inputText_selectionStairt = inputText.getSelectionStairt(); this.inputText_selectionEnd = inputText.getSelectionEnd(); registerForContextMenu(inputText); openContextMenu(inputText); unregisterForContextMenu(inputText); 

    É um erro de Android airquivado: https://code.google.com/p/android/issues/detail?id=82640 . Esse link contém uma solução alternativa. Felizmente, isso foi corrigido no Android 6.0.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.