Bu, gelecekteki izleyiciler için daha fazla açıklama ile biraz daha genel bir cevaptır.
Metin değiştirilmiş dinleyici ekle
Metin uzunluğunu bulmak veya metin değiştirildikten sonra başka bir şey yapmak istiyorsanız, düzenleme metninize metin değiştirilmiş dinleyici ekleyebilirsiniz.
EditText editText = (EditText) findViewById(R.id.testEditText);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable editable) {
}
});
Dinleyici ihtiyacı TextWatcher: geçersiz kılınan olmak üç yöntem gerektirir, beforeTextChanged, onTextChanged, ve afterTextChanged.
Karakterleri sayma
Karakter sayısını içeri onTextChangedveya beforeTextChangediçine alabilirsiniz
charSequence.length()
veya afterTextChangedile
editable.length()
Yöntemlerin anlamı
Parametreler biraz kafa karıştırıcı, bu yüzden burada biraz ekstra açıklama var.
beforeTextChanged
beforeTextChanged(CharSequence charSequence, int start, int count, int after)
charSequence: Bu, bekleyen değişiklik yapılmadan önceki metin içeriğidir. Değiştirmeye çalışmamalısınız.
start: Bu, yeni metnin ekleneceği dizindir. Bir aralık seçilirse, aralığın başlangıç dizinidir.
count: Bu, değiştirilecek seçilen metnin uzunluğudur. Hiçbir şey seçilirse o zaman countolacak 0.
after: bu, eklenecek metnin uzunluğudur.
OnTextChanged
onTextChanged(CharSequence charSequence, int start, int before, int count)
charSequence: Bu, değişiklik yapıldıktan sonraki metin içeriğidir. Bu değeri burada değiştirmeye çalışmamalısınız. Değiştir editableiçinde afterTextChangedGerekirse.
start: Bu, yeni metnin eklendiği başlangıcın dizinidir.
before: Bu eski değer. Değiştirilen, önceden seçilen metnin uzunluğudur. Bu aynı değerdir countiçinde beforeTextChanged.
count: Bu, eklenen metnin uzunluğudur. Bu aynı değerdir afteriçinde beforeTextChanged.
afterTextChanged
afterTextChanged(Editable editable)
Gibi onTextChangeddeğişiklik zaten yapıldıktan sonra, bu denir. Ancak, şimdi metin değiştirilebilir.
editable: Bu, düzenlenebilir metnidir EditText. Eğer değiştirirseniz, sonsuz bir döngüye girmemeye dikkat etmelisiniz. Daha fazla ayrıntı için belgelere bakın.
