Odpowiedzi:
Możesz spróbować w swoim main.xml
pliku:
android:selectAllOnFocus="true"
Lub w Javie użyj
editText.setSelectAllOnFocus(true);
editText.setSelectAllOnFocus(true);
Działa to, jeśli chcesz to zrobić programowo.
Fragments
).
editText.requestFocus()
problem editText.clearFocus()
wcześniej, aby zapewnić pożądane działanie występuje w przypadku, gdy widok jest już koncentruje
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
... etc ... wtedy editText1.setOnFocusChangeListener(listener)
editText2.setOnFocusChangeListener(listener)
i tak dalej ...
Wiem, że znalazłeś rozwiązanie, ale naprawdę właściwym sposobem na zrobienie tego, o co prosisz, jest po prostu użycie android:hint
atrybutu w tekście EditText. Ten tekst pojawia się, gdy pole jest puste i nieostre, ale znika po wybraniu pola EditText.
Dlaczego nie spróbujesz Androida: hint = "podpowiedź", aby przekazać podpowiedź użytkownikowi .. !!
„Wskazówka” zniknie automatycznie, gdy użytkownik kliknie edittextbox. jest to właściwe i najlepsze rozwiązanie.
Możesz także dodać metodę OnClick do editText później
_editText.setSelectAllOnFocus(true);
i w tym:
_editText.clearFocus();
_editText.requestFocus();
Po kliknięciu przycisku editText zaznaczony jest cały tekst.
SelectAllOnFocus działa przy pierwszym ustawieniu fokusa EditText, ale jeśli chcesz zaznaczyć tekst za każdym razem, gdy użytkownik go kliknie, musisz zadzwonić editText.clearFocus()
pomiędzy nimi.
Na przykład, jeśli twoja aplikacja ma jeden EditText i jeden przycisk, kliknięcie tego przycisku po zmianie EditText pozostawia fokus w EditText. Następnie użytkownik musi użyć uchwytu kursora i klawisza Backspace, aby usunąć zawartość EditText, zanim będzie mógł wprowadzić nową wartość. Więc wywołaj metodę editText.clearFocus()
przycisku onClick
.
Próbowałem powyższej odpowiedzi i nie działałem, dopóki nie zmieniłem instrukcji. Oto, co zadziałało dla mnie:
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();
}
}
Musiałem zapytać, czy fokus jest ustawiony na EditText, a jeśli nie, najpierw poproś o fokus, a następnie go wyczyść. W przeciwnym razie następnym razem, gdy kliknę na EditText, wirtualna klawiatura nigdy się nie pojawi
Po prostu dodaj to do swojego editText w pliku .xml
android: selectAllOnFocus = "true"
To działa dla mnie:
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();
}
}
});