Dalam keadaan apa yang harus saya gunakan afterTextChanged
sebagai pengganti onTextChanged
dan sebaliknya?
Dalam keadaan apa yang harus saya gunakan afterTextChanged
sebagai pengganti onTextChanged
dan sebaliknya?
Peristiwa ini dipanggil dalam urutan berikut:
beforeTextChanged (CharSequence s, int start, int count, int after) .
Ini berarti karakter akan diganti dengan beberapa teks baru. Teks tidak bisa diedit.
Gunakan: saat Anda perlu melihat teks lama yang akan berubah.
onTextChanged (CharSequence s, int start, int before, int count) .
Perubahan telah dilakukan, beberapa karakter baru saja diganti. Teks tidak bisa diedit.
Gunakan: saat Anda perlu melihat karakter mana dalam teks yang baru.
afterTextChanged (Dapat diedit) .
Sama seperti di atas, kecuali sekarang teksnya dapat diedit .
Gunakan: saat Anda perlu melihat dan mungkin mengedit teks baru.
Jika saya hanya mendengarkan perubahan EditText
, saya tidak perlu menggunakan dua metode pertama sama sekali. Saya hanya akan menerima nilai baru dalam metode ketiga dan mengoreksi teks baru jika diperlukan. Namun, jika saya harus melacak perubahan tepat yang terjadi pada nilai, saya akan menggunakan dua metode pertama. Jika saya juga perlu mengedit teks setelah mendengarkan perubahan, saya akan melakukannya di metode ketiga.
public void afterTextChanged (Dapat diedit)
public void beforeTextChanged (CharSequence s, int start, int count, int after)
public void onTextChanged (CharSequence s, int start, int before, int count)
Langsung dari Referensi Android untuk TextWatcher .
sumber
afterTextChanged (Editable s)
- Metode ini dipanggil ketika teks telah diubah. Karena setiap perubahan yang Anda buat akan menyebabkan metode ini dipanggil lagi secara rekursif, Anda harus berhati-hati dalam melakukan operasi di sini, jika tidak, ini dapat menyebabkan pengulangan tak terbatas .onTextChanged (CharSequence s, int start, int before, int count)
- Metode ini dipanggil untuk memberi tahu Anda bahwa, dalam s, hitungan karakter yang dimulai dari awal baru saja menggantikan teks lama yang memiliki panjang sebelumnya. Ini adalah kesalahan untuk mencoba membuat perubahan dari panggilan balik ini.sumber