Ответы:
Вы можете попробовать в своем main.xml
файле:
android:selectAllOnFocus="true"
Или, на Java, используйте
editText.setSelectAllOnFocus(true);
editText.setSelectAllOnFocus(true);
Это работает, если вы хотите сделать это программно.
Fragments
).
editText.requestFocus()
вопрос editText.clearFocus()
заранее , чтобы обеспечить желаемое действие происходит в том случае , когда точка зрения уже сосредоточены
EditText dummy = ...
// android.view.View.OnFocusChangeListener
dummy.setOnFocusChangeListener(new OnFocusChangeListener(){
public void onFocusChange(View v, boolean hasFocus){
if (hasFocus) && (isDummyText())
((EditText)v).selectAll();
}
});
OnFocusChangeListener listener = new OnFocusChangeListener
... и т.д ... тогда editText1.setOnFocusChangeListener(listener)
editText2.setOnFocusChangeListener(listener)
и так далее ...
Я знаю, что вы нашли решение, но на самом деле правильный способ сделать то, что вы просите, это просто использовать android:hint
атрибут в вашем EditText. Этот текст отображается, когда поле пустое и не сфокусировано, но исчезает при выборе поля EditText.
Почему бы вам не попробовать Android: hint = "подсказка", чтобы предоставить подсказку для пользователя .. !!
«Подсказка» автоматически исчезнет, когда пользователь нажмет на текстовое поле редактирования. это правильное и лучшее решение.
Вы также можете добавить метод OnClick в editText после
_editText.setSelectAllOnFocus(true);
и в этом:
_editText.clearFocus();
_editText.requestFocus();
Как только вы нажмете editText, весь текст будет выделен.
SelectAllOnFocus работает в первый раз, когда EditText получает фокус, но если вы хотите выделять текст каждый раз, когда пользователь нажимает на него, вам нужно позвонить editText.clearFocus()
между делом.
Например, если ваше приложение имеет один EditText и одну кнопку, нажатие кнопки после изменения EditText оставляет фокус в EditText. Затем пользователь должен использовать дескриптор курсора и клавишу возврата, чтобы удалить то, что находится в EditText, прежде чем они смогут ввести новое значение. Так что вызовите editText.clearFocus()
метод Баттона onClick
.
Я попробовал вышеуказанный ответ и не работал, пока я не переключил утверждения. Вот что сработало для меня:
myEditText.setSelectAllOnFocus(true);
myEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onClickMyEditText();
}
});
private void onClickMyEditText() {
if(myEditText.isFocused()){
myEditText.clearFocus();
myEditText.requestFocus();
}else{
myEditText.requestFocus();
myEditText.clearFocus();
}
}
Я должен был спросить, находится ли фокус на EditText, и если нет, сначала запросить фокус, а затем очистить его. В противном случае в следующий раз, когда я нажму на EditText, виртуальная клавиатура никогда не появится
Просто добавьте это к своему тексту редактирования в файле .xml
андроид: selectAllOnFocus = "истина"
Это работает для меня:
myEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(myEditText.isFocused()){
myEditText.requestFocus();
myEditText.clearFocus();
myEditText.setSelection(myEditText.getText().length(), 0);
}else{
myEditText.requestFocus();
myEditText.clearFocus();
}
}
});