Intereting Posts
Как нарисовать дугу между двумя точками на холсте? Android ListView setSelection (), похоже, не работает Удалить правило из RelativeLayout до api 17 Плагин Android Emulator на Jenkins – Как продлить время ожидания? Проблемы с подключением к Интернету Установите цвет фона LinearLayout с помощью логического значения Как использовать автономный пакет на android для реагирования на собственный проект? Android EditText, минус, преобразованный в точечное событие, но inputType = "number | numberSigned | numberDecimal" Intent Filter для запуска моей активности при нажатии пользовательского URI Подписание APK приложения Android? Есть ли способ перегрузить JSONArray, чтобы вести себя как обычный список в цикле? Не удалось слияние манифеста: uses-sdk: minSdkVersion 8 не может быть меньше Android-фрагменты против составных элементов управления ScrollTop не работает в мобильных телефонах Android Qt5.1-android: версия Qt для mips, отсутствующих в QtCreator

Как запустить контекстную панель действий для текстового просмотра программно с копиями опций по умолчанию и выбрать все?

Есть ли способ программно запустить контекстную панель действий, связанную с текстовым представлением, нажатием кнопки? Он должен содержать опции по умолчанию для копирования / выбора. В принципе, я хочу показать дескрипторы выделения в своем текстовом представлении, а андроид по умолчанию скопировать / выбрать все в панели действий, щелчком кнопки (вместо длинного щелчка / двойного нажатия).

То, что я пробовал до сих пор: попытался использовать setCustomActionModeCallback () api, но проблема здесь, пользователю нужно долгое нажатие / двойной щелчок по текстовому представлению для CAB. Пробовал использовать startActionMode () api, но не смог найти способ сохранить элементы по умолчанию .. он просто открывает новую пустую CAB .. я знаю, я могу добавить свой собственный экземпляр – выбрать весь код и использовать эту пустую CAB, но Я хочу использовать установленный по умолчанию android, один вместо того, чтобы управлять им самостоятельно.

Редактировать; Я не могу использовать EditText. Представление должно быть только TextView, и длительный щелчок будет отключен. Я делаю все вышеуказанные изменения, устанавливая TextView как выбираемый

Solutions Collecting From Web of "Как запустить контекстную панель действий для текстового просмотра программно с копиями опций по умолчанию и выбрать все?"

Выберите текст вручную, а затем выполните длинный щелчок:

textView.post(new Runnable() { @Override public void run() { Selection.selectAll((Spannable) tv.getText()); tv.performLongClick(); } }); 

Редактировать:

Проблема заключается в том, что встроенный выбор текста CAB является закрытым и использует несколько частных классов. Вам нужно будет скопировать много кода или получить доступ к кучу методов с отражением, чтобы использовать его.

Вы можете создать свое собственное меню CAB, но вам также понадобятся ручки контроллера, в которых снова много кода.

Простым решением было бы жить с тем, что у вас есть, и использовать мой предложенный выше метод. Если вы хотите не называть своего длинного кликера, вы можете удалить его во время вызова кабины:

 Selection.selectAll((Spannable) tv.getText()); tv.setOnLongClickListener(null); tv.performLongClick(); tv.setOnLongClickListener(mLongClickListener); 

Если вы хотите выбрать текст в текстовом представлении, чем есть несколько подходов, за которыми вы можете следовать. Первое, что вы можете сделать, – установить свойства xml TextView.

  android:textIsSelectable = "true" txtView.setTextIsSelectable(true) 

Флаг textIsSelectable позволяет пользователям делать жесты выбора в TextView, который, в свою очередь, запускает встроенные элементы управления копированием / вставкой системы.

или

 android:selectAllOnFocus = true; setSelectAllOnFocus(boolean) 

Если текст можно выбрать, выберите его, когда фокус фокус. И вы можете настроить фокус нажатием кнопки. Используя метод RequestFocus ().

Для более подробного изучения вы можете ссылаться на эту ссылку. Вы найдете всю свою необходимую задачу. http://developer.android.com/reference/android/widget/TextView.html[http://developer.android.com/reference/android/widget/TextView.html][1]

Спасибо