В моем приложении есть текст для редактирования. Когда пользователь касается текста редактирования, весь текст должен быть выделен, а когда он начинает вводить текст, должен быть очищен. Примером может служить адресная строка браузера. Есть ли способ сделать это? Пожалуйста, помогите мне.
Android EditText: выделите весь текст при касании и очистите, когда пользователь начнет печатать.
Ответы (6)
Вы можете выделить весь текст в EditText, используя
android:selectAllOnFocus
, а также _ 2_
Вызов EditText.setSelectAllOnFocus(boolean selectAllOnFocus)
, чтобы выделить весь текст в фокусе.
Установите прослушиватель кликов на свой EditText
и в onClick
вызов edittext.selectAll();
onClick
в XML, я установил onClickListener
в своей активности ET, затем поместил метод selectAll()
в свой ET в его метод onClick()
, и он выбирает все, только когда вы щелкаете по нему.
- person Azurespot; 13.05.2016
Добавьте атрибут в свой файл main.xml:
android:selectAllOnFocus="true"
Затем будет выделен весь текст, и когда пользователь введет что-то, он удалит его.
Вы можете использовать свойство android:hint
вместо android:text
, и вы получите то, что хотите, без специального кода.
Вы можете выделить весь текст в EditText с помощью android:selectAllOnFocus
или setSelectAllOnFocus(boolean)
.
Установите флажок, когда выделен весь текст. Затем обнаружите изменение текста с помощью addTextChangedListener в вашем EditText и заставьте ваш класс реализовать или определить внутренний класс, реализующий TextWatcher.
В этом методе класса наблюдателя проверьте установленный вами флаг, чтобы указать, выбран ли весь текст. если правда, то сделать TextView.setText("")
. Это очистит текст. Теперь снова установите флаг в значение false, чтобы последующие изменения текста не вызывали его очистку.
Это работает, весь текст будет выбран, и когда пользователь введет что-то, что удалит его.
editText.setSelectAllOnFocus(true);
editText.requestFocus();
editText.postDelayed(new Runnable() {
@Override
public void run() {
InputMethodManager keyboard = (InputMethodManager) catalougeJobDetailFragment
.getActivity().getSystemService(
Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(commentEt, 0);
}
}, 20);