Android: выделите весь текст в фокусе на EditField - PullRequest
3 голосов
/ 18 июня 2011

Я пытаюсь заставить Android выделить весь текст в поле EditText, когда он получит фокус. Я использую этот атрибут в макете (на обоих полях):

android:selectAllOnFocus="true"

Я не уверен, что это уместно, но чтобы перевести курсор на первое редактируемое поле (перед ним также есть отключенное поле), я использую следующие команды:

quizStartNum.setFocusable(true);
quizStartNum.requestFocus();

Но, хотя курсор перемещается в нужное поле при первом отображении макета, текст не выделяется; вместо этого курсор заканчивается слева от текста, поведение по умолчанию. Если я перейду ко второму полю, коснувшись его, весь текст будет выбран по желанию. Затем, если я вернусь к первому полю, снова коснувшись его, текст также будет выделен полностью. Я хотел бы иметь поведение с самого начала. Есть ли способ сделать это?

Ответы [ 3 ]

3 голосов
/ 18 июня 2011

Если android:selectAllOnFocus="true" не работает, попробуйте вызвать setSelectAllOnFocus(true) для этого конкретного EditText.

Если это тоже не сработает, это еще один обходной путь из предыдущего поста SO.

EditText dummy = ... 

dummy.setOnFocusChangedListener(new OnFocusChangedListener(){
    public void onFocusChange(View v, boolean hasFocus){
        if (hasFocus) && (isDummyText())
            ((EditText)v).selectAll();
    }
});
0 голосов
/ 18 июня 2011

Я буду ссылаться на этот старый пост .

Если вы просто хотите, чтобы ваш EditText показывал подсказку (для "что здесь происходит"), вы можете захотетьиспользуйте XML-атрибут Android hint ( ссылка ).

0 голосов
/ 18 июня 2011

Попробуйте удалить команды фокусировки. Они не нужны, Android должен автоматически фокусироваться на первом поле?

...