Zdaję sobie sprawę, że to stary post, ale miałem ten sam problem. Dla mnie rozumowanie polegało na tym, że lubię odsunąć klawiaturę na bok (odrzucić), aby uzyskać moje łożyska (lub przyciski w celu dodania lub usunięcia rzędów danych) i kiedy dotknąłem EditText, który wcześniej edytowałem, denerwujące było ponowne naciśnięcie klawisza klawiatury i cofnięcie wyboru tekstu, zmuszając mnie do pracy, aby przesunąć kursor do miejsca, w którym chciałem rozpocząć usuwanie, lub dotknięcia innego EditText, a następnie powrotu do oryginału, aby ponownie wybrać wszystko . Chcę tylko mieć pop klawiatury i mieć zaznaczony tekst i gotowy do nadpisania, kiedy idę do tego EditText.
Istnieją proste rozwiązania to:
1) Długi kran robi to dla ciebie w większości przypadków.
2) Jeżeli używasz już setSelectAllOnFocus(true)
, można po prostu wyrzucić prosty clearFocus()
i requestFocus()
w swoim onClick słuchacza:
etMyEditText.setSelectAllOnFocus(true);
etMyEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.clearFocus();
view.requestFocus();
}
});
ten sposób EditText ma wszystko, wybrany po dotknięciu na nim, niezależnie od tego, status miękkiej klawiatury.
Dodatkowa premia: Dodaj android:windowSoftInputMode="adjustPan"
wewnątrz tagu <activity .../>
w pliku AndroidManifest.xml zmusić wybrany EditText pozostać w oczach, gdy klawiatura wyskakuje.
To zupełnie normalne. W przeciwnym razie użytkownik nie może pozbyć się zaznaczenia. – CommonsWare
Czy próbowałeś selectAllOnFocus za pomocą kodu Java w zdarzeniu onclick? – AJcodez
Czego można się spodziewać * powinno * się zdarzyć? według twojej logiki wybór nigdy nie zniknie po kliknięciu przez użytkownika. czy naprawdę tego chcesz? –