Intereting Posts
Переопределение Adapter.getView Ошибка входа в Facebook на некоторых устройствах Создать экземпляр всех элементов в представлении пейджера android Как построить дату из строки Если AsyncTask не является внутренним классом … – некоторые вопросы Что представляет собой блок линейки в редакторе макетов Android? Соглашение об именах с сериализацией / десериализацией Firebase? Как проверить, попадают ли координаты одного местоположения в другое место радиус координат в андроиде Как я программно проверяю, отображается ли меню моей активности в определенный момент? Твиттер Twitter для Android Избегайте диалога пользователя при подключении устройства BLE с использованием PIN-кода на последнем API (Lollipop) Создание проекта андроида, ссылающегося на проект андроидной библиотеки с использованием ant / teamcity См. Недавнюю задачу Android, выполненную пользователем. Добавление AAR в IntelliJ IDEA без градиента Android textview не поддерживает разрыв строки

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

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

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

Спасибо