Apakah ada widget seperti EditText
yang berisi tombol silang, atau apakah ada properti EditText
yang dengannya widget itu dibuat secara otomatis? Saya ingin tombol silang menghapus teks apa pun yang ditulis EditText
.
android
android-edittext
Arun Badole
sumber
sumber
Jawaban:
Gunakan tata letak berikut:
Anda juga dapat menggunakan id tombol dan melakukan tindakan apa pun yang Anda inginkan pada metode onClickListener.
sumber
Jika Anda kebetulan menggunakan DroidParts , saya baru saja menambahkan ClearableEditText .
Begini tampilannya dengan latar belakang khusus & ikon hapus yang ditetapkan
abs__ic_clear_holo_light
dari ActionBarSherlock :sumber
EditText
. Thx @yanchenkoSolusi 2020 melalui Komponen Desain Material untuk Android:
Tambahkan Komponen Bahan ke pengaturan gradle Anda:
Cari versi terbaru dari sini: https://maven.google.com/
atau jika Anda belum diperbarui untuk menggunakan lib AndroidX, Anda dapat menambahkannya dengan cara ini:
Kemudian
Perhatikan: app: endIconMode = "clear_text"
Seperti yang dibahas di sini, dokumen desain material
sumber
<androidx.appcompat.widget.AppCompatEditText/>
? bisakah Anda membantu saya samaIni adalah solusi kotlin. Masukkan metode pembantu ini di beberapa file kotlin
Dan kemudian menggunakannya sebagai berikut dalam
onCreate
metode dan Anda harus baik untuk pergiBTW, Anda harus menambahkan
R.drawable.ic_clear
atau menghapus ikon pada awalnya. Yang ini dari google- https://material.io/tools/icons/?icon=clear&style=baselinesumber
this.clearFocus()
sebelum mengembalikan pernyataan benar, Anda dapat mendengarkan acara ini di pemanggil EditText denganonFocusChange
pendengarsetCompoundDrawablesWithIntrinsicBounds(0, 0, clearIcon, 0)
. Anda dapat melewatkan id ikon yang dapat ditarik kiri sebagai param baru untuk fungsi ini dan memasukkannya ke dalam panggilan.Dukungan libarary Android memiliki
SearchView
kelas yang melakukan hal ini. (Tidak diturunkan dariEditText
jadi, jadi harus menggunakanSearchView.OnQueryTextListener
bukan aTextWatcher
)Gunakan dalam XML seperti:
sumber
dimana, x adalah:
sumber
Untuk
drawable resource
Anda dapat menggunakan gambar Android standar:http://androiddrawables.com/Menu.html
Sebagai contoh :
sumber
Jika Anda tidak ingin menggunakan tampilan khusus atau tata letak khusus, Anda dapat menggunakan 9-patch untuk membuat tombol (X).
Contoh: http://postimg.org/image/tssjmt97p/ (Saya tidak punya cukup poin untuk memposting gambar di StackOverflow)
Perpotongan piksel hitam kanan dan bawah mewakili area konten. Apa pun di luar area itu adalah padding. Jadi untuk mendeteksi bahwa pengguna mengklik x Anda dapat mengatur OnTouchListener seperti:
Sesuai dengan kebutuhan Anda, solusi ini dapat bekerja lebih baik dalam beberapa kasus. Saya lebih suka menjaga agar xml saya tidak terlalu rumit. Ini juga membantu jika Anda ingin memiliki ikon di sebelah kiri, karena Anda cukup memasukkannya di patch 9.
sumber
Saya melakukan bagian UI seperti di bawah ini:
edittext_bg.xml
balloon_overlay_close.png
Tombol Silang / Hapus sembunyikan / tampilkan:
Menangani barang pencarian (yaitu ketika pengguna mengklik pencarian dari papan tombol lunak)
Tombol hapus / silang
sumber
Menggunakan
sumber
Ini perpustakaan lengkap dengan widget: https://github.com/opprime/EditTextField
Untuk menggunakannya Anda harus menambahkan ketergantungan:
Di file layout.xml Anda dapat bermain dengan pengaturan widget:
app: clearButtonMode , dapat memiliki nilai seperti itu: tidak pernah selalu sementara Mengedit kecuali Mengedit
app: clearButtonDrawable
Contoh dalam aksi:
sumber
Cukup beri tanda silang seperti
drawableEnd
pada AndaEditText
:dan gunakan ekstensi untuk menangani klik (atau gunakan
OnTouchListener
langsung pada AndaEditText
):penggunaan ekstensi:
sumber
Anda dapat menggunakan potongan ini dengan jawaban Jaydip untuk lebih dari satu tombol. panggil saja setelah mendapatkan referensi ke ET dan Tombol Elemen. Saya menggunakan tombol vecotr sehingga Anda harus mengubah elemen Button menjadi ImageButton:
sumber
Jika Anda berada di tata letak bingkai atau Anda dapat membuat tata letak bingkai saya mencoba pendekatan lain ....
Ini adalah teks edit di mana saya meletakkan ikon silang sebagai gambar yang benar dan daripada itu, saya meletakkan tombol transparan yang menghapus teks.
sumber
sumber