Czy jest jakikolwiek widżet, EditText
który zawiera przycisk krzyżyka, czy jest jakaś właściwość, dla EditText
której jest tworzony automatycznie? Chcę, aby przycisk krzyżyka usunął tekst napisany w EditText
.
android
android-edittext
Arun Badole
źródło
źródło
Odpowiedzi:
Użyj następującego układu:
Możesz także użyć identyfikatora przycisku i wykonać dowolną akcję na jego metodzie onClickListener.
źródło
Jeśli zdarzy ci się używać DroidParts , właśnie dodałem ClearableEditText .
Oto jak to wygląda z niestandardowego tła i jasny zestaw ikon do
abs__ic_clear_holo_light
od ActionBarSherlock :źródło
EditText
. Dzięki @yanchenkoRozwiązanie 2020 za pośrednictwem Material Design Components dla Androida:
Dodaj komponenty materiałowe do konfiguracji stopni:
Poszukaj najnowszej wersji tutaj: https://maven.google.com/
lub jeśli nie zaktualizowałeś się do korzystania z bibliotek AndroidX, możesz dodać to w ten sposób:
Następnie
Zwróć uwagę na: app: endIconMode = "clear_text"
Jak omówiono tutaj Dokumenty dotyczące projektowania materiałów
źródło
<androidx.appcompat.widget.AppCompatEditText/>
? czy możesz mi pomóc w tym samymTo rozwiązanie kotlin. Umieść tę metodę pomocniczą w pliku Kotlin
A następnie użyj go w następujący sposób w
onCreate
metodzie i powinieneś być dobry-BTW, musisz najpierw dodać
R.drawable.ic_clear
lub wyczyścić ikonę. Ten jest z google- https://material.io/tools/icons/?icon=clear&style=baselineźródło
this.clearFocus()
przed zwracaną instrukcją true, możesz słuchać tego zdarzenia w programie wywołującymonFocusChange
setCompoundDrawablesWithIntrinsicBounds(0, 0, clearIcon, 0)
. Możesz przekazać lewy id ikony do rysowania jako nowy parametr do tej funkcji i umieścić ją w wywołaniu.Wsparcie dla Androida ma
SearchView
klasę, która właśnie to robi. (Nie jest jednak pozbawionyEditText
, więc należy użyćSearchView.OnQueryTextListener
zamiast aTextWatcher
)Użyj w XML tak:
źródło
gdzie x jest:
źródło
Dla
drawable resource
można użyć standardowych android obrazów:http://androiddrawables.com/Menu.html
Na przykład :
źródło
Jeśli nie chcesz używać niestandardowych widoków lub układów specjalnych, możesz użyć 9-łatek, aby utworzyć przycisk (X).
Przykład: http://postimg.org/image/tssjmt97p/ (Nie mam wystarczającej liczby punktów, aby publikować obrazy na StackOverflow)
Przecięcie prawego i dolnego czarnego piksela reprezentuje obszar zawartości. Wszystko poza tym obszarem jest wyściełane. Aby wykryć, że użytkownik kliknął x, możesz ustawić OnTouchListener w następujący sposób:
W zależności od potrzeb rozwiązanie to może w niektórych przypadkach działać lepiej. Wolę, aby mój xml był mniej skomplikowany. Pomaga to również, jeśli chcesz mieć ikonę po lewej stronie, ponieważ możesz po prostu dołączyć ją do łatki 9.
źródło
Zrobiłem część interfejsu użytkownika jak poniżej:
edittext_bg.xml
balloon_overlay_close.png
Przycisk krzyż / Wyczyść ukryj / pokaż:
Obsługa wyszukiwania (np. Gdy użytkownik kliknie wyszukiwanie z tablicy klawiszy programowych)
Przycisk Clear / Cross
źródło
Posługiwać się
źródło
Oto pełna biblioteka z widżetem: https://github.com/opprime/EditTextField
Aby z niego skorzystać, należy dodać zależność:
W pliku layout.xml można odtwarzać z ustawieniami widgetu:
app: clearButtonMode can może mieć takie wartości: nigdy nie należy podczas edycji, chyba że edycja
aplikacja: clearButtonDrawable
Próbka w akcji:
źródło
Po prostu postaw krzyżyk jak
drawableEnd
w swoimEditText
:i użyj rozszerzenia do obsługi kliknięcia (lub użyj
OnTouchListener
bezpośrednio na swoimEditText
):użycie rozszerzenia:
źródło
Możesz użyć tego fragmentu kodu z odpowiedzią Jaydip dla więcej niż jednego przycisku. po prostu zadzwoń po uzyskaniu odniesienia do ET i elementów przycisku. Użyłem przycisku vecotr, więc musisz zmienić element Button na ImageButton:
źródło
Jeśli jesteś w układzie ramek lub możesz utworzyć układ ramek, wypróbowałem inne podejście ....
To jest tekst edycyjny, w którym po prawej stronie rysuję ikonę krzyżyka, a następnie W GÓRĘ umieszczam przezroczysty przycisk, który usuwa tekst.
źródło
źródło