Intereting Posts
Проблема с расширением многоуровневого ExpandableListView Как выявить, что экран заблокирован? Изменение общего значения предпочтений Android от String to Int SwipeRefreshLayout запускается программно Ресурс был получен при подключенной трассировке стека, но не был выпущен. См. Java.io.Closeable для получения информации об избежании утечек ресурсов Ошибка кнопки setonclicklistener Более 1 разных адресов и только один список Ошибка: не удалось найти оболочку градиента в Android SDK (cordova + ionic) Фрагмент Android, просмотр не удаляется Можно использовать реализацию VpnService для захвата и отправки пакетов? Расположение координатора с панелью инструментов в фрагментах или действиях Как избежать установки элемента выбора звонка андроида при настройке адаптера? Программный запуск активности «Добавить учетную запись» в Android 2.2 Android-анимация и аппаратные слои Что такое Android PendingIntent?

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

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

То, что я пробовал до сих пор: попытался использовать 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]

Спасибо