W mojej aplikacji, gdy użytkownik kliknie lub dotknie w widoku Edytuj tekst, ostrość jest czasami ustawiona na początek. Na przykład, jeśli istniejący tekst to "Cześć". Użytkownicy chcą go kliknąć i zmienić na "H1 Jak się masz?" poprzez dodanie tekstu "Jak się masz?". Ale ponieważ ostrość jest na początku, staje się "Jak się masz? Cześć". Dlatego zawsze chcę ustawić ostrość na prawą część tekstu po wybraniu. Jak mam to zrobic. Daj mi znać, jeśli to możliwe, z próbką. Dziękuję za twój czas i pomoc.Jak ustawić ostrość na prawo tekstu w EditText dla Androida?
Odpowiedz
Można jawnie umieścić daszka do ostatniej pozycji w tekście:
EditText editText = (EditText) findViewById(R.id.textId);
int pos = editText.getText().length();
editText.setSelection(pos);
coś więcej especific o które pytasz, można użyć następny kod:
EditText editText = (EditText) findViewById(R.id.textId);
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
editText.setSelection(editText.getText().length());
}
}
});
metoda setOnFocusChangeLister() jest służy do wykrywania, kiedy editText otrzymuje fokus.
Powyższe rozwiązanie nie działa.
Tutaj podaję nowe rozwiązanie ustawiania ostrości na prawo tekstu w edytorze tekstu dla Androida. I działa dobrze.
Mój kod to:
EditText edt_ans = (EditText)findViewById(R.id.edt_answer);
edt_ans.addTextChangedListener(new TextWatcher()
{
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
// TODO Auto-generated method stub
edt_ans.setSelection(edt_ans.getText().length());
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,int after)
{
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s)
{
// TODO Auto-generated method stub
}
});
Szczęśliwy Coding .... :)
Twoja odpowiedź ustawia pozycję karetki onTextChanged, a nie onClick - o co pytało pierwotne pytanie. Proszę, staraj się nie wskrzewać bardzo starych pytań ... –
znaczniejszą sposobem byłoby gdzie nie trzeba dbać o ustawienie wybrane ręcznie przez cały czas. Tak więc użyj CustomEditText zamiast EditText w swoim układzie.
public class CustomEditText extends EditText {
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* This is a Fix of buggy behavior of android, where after setting text using setText(...), selection remain on
* first character and not at last character.
*/
@Override
public void setText(CharSequence text, BufferType type) {
super.setText(text, type);
if (text != null && ! (text.toString().trim().length() == 0)) {
final int textLength = text.length();
if (getSelectionEnd() != textLength) {
setSelection(textLength);
}
}
}
}
seSelection nie działał dla mnie, ale działa to jak urok. Działa również po afterTextChanged.
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
edittext.requestFocus(edittext.getText().length());
}
Na nowym API U można używać coś takiego:
//buttons setups
private void buttonsSetupForRecommendations() {
button2.setNextFocusRightId(R.id.ok_button);
button2.setNextFocusLeftId(R.id.ok_button);
button2.setNextFocusDownId(R.id.cancel_button);
button2.setNextFocusUpId(R.id.cancel_button);
button.setVisibility(View.GONE);
button2.setText(R.string.cancel_text);
button1.setText(R.string.clear_text);
button1.setNextFocusRightId(R.id.cancel_button);
button1.setNextFocusLeftId(R.id.cancel_button);
button1.setNextFocusUpId(R.id.ok_button);
button1.setNextFocusDownId(R.id.ok_button);
button1.requestFocus();
}
ta praca z przyciskiem i innych przedmiotów. U można dodać to na kodzie java ^^ lub xml
public void ontextchangelistner(){
if(s.toString().startsWith("0")) {
if (s.length() == 2) {
if (s.toString().contains("00")) {
editText.setText(s.toString().substring(1));
int pos = editText.getText().length();
editText.setSelection(pos);
}
}
}
Jeśli wprowadzisz pierwsze zero w tekście edycji, wyświetli się; ale po drugim naciśnięciu zera to zero nie jest pokazane. Mam nadzieję, że ci to pomoże.
- 1. Jak ustawić ostrość (i wyświetlić klawiaturę) na moim EditText programowo
- 2. Android - ustawić ostrość na EditText po wyborze Spinner
- 3. Ostrość żądania edycji tekstu nie działa
- 4. android jak ustawić EditText kursor na koniec swojego tekstu
- 5. Android, jak ustawić ScrollBar w Edittext?
- 6. Jak usunąć ostrość od pojedynczego EditText
- 7. Tekst w tekście Androida EditText
- 8. Ukrywanie klawiatury Androida dla EditText
- 9. Jak ustawić ostrość na inne okno?
- 10. Jak ustawić kolor tekstu podsumowania preferencji Androida?
- 11. Jak usunąć podpowiedź automatyczną dla Androida w EditText?
- 12. Ustawienie stylu tekstu wskazówek Edittext dla kursywy
- 13. Odstępy między literami w EditText dla Androida
- 14. Jak usunąć ostrość z EditText po zakończeniu edycji przez użytkownika?
- 15. Wyrównanie tekstu w JLabel w prawo
- 16. Skąd wiadomo, że EditText traci ostrość?
- 17. Jak ustawić ostrość i pokazać miękką klawiaturę, gdy EditText jest wyświetlany na pasku akcji?
- 18. Czytanie tekstu EditText w Androidzie
- 19. Jak ustawić głośność dla metody "wypowiadania" tekstu na mowę?
- 20. jak ustawić ostrość w kątowym autouzupełnianiu md?
- 21. Wyrównanie tekstu UILabel w prawo
- 22. Zmiana części koloru tekstu w widgecie "EditText"
- 23. Jak prawidłowo ustawić wysokość linii dla Androida?
- 24. Jak ustawić ostrość/rozmycie na komponencie w testach integracyjnych?
- 25. Jak utracić ostrość edytora tekstu po naciśnięciu przycisku "done" na klawiaturze programowej?
- 26. Ustaw maksymalną liczbę linii tekstu dla EditText
- 27. Jak mogę ustawić ostrość tego pola hasła?
- 28. Jak automatycznie ustawić ostrość aparatu z Androidem?
- 29. Jak ustawić wiele typów danych wejściowych w EditText na Androidzie?
- 30. tkinter - Jak ustawić czcionkę dla tekstu?
Jeśli chcesz poprosić o fokus na widok, a następnie ustawić wybór, nie zapomnij dodatkowo wywołać requestFocus(); – cV2