biçimini biçimlendirir TextWatcher ile bir EditText var. Metnin 5'9 "gibi bir insan boyuna biçimlendirilmesi gerekiyordu. Fakat kullanıcı bir hata yaptığında ve yanlış yazılan karakteri silmek istediğinde TextWather bunu yapmasına izin vermiyor. Kullanıcı" silmek istediğini "söyleyelim TextWather onu hemen geri ekler. Kod aşağıdadır. Peki kullanıcının EditText'teki metni silmesine nasıl izin verebilirim?TextWatcher ile EditText'deki metni nasıl silerim? Her zaman bir dize algılar ve onun
private class CustomTextWatcher implements TextWatcher {
private EditText mEditText;
public CustomTextWatcher(EditText e) {
mEditText = e;
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
public void afterTextChanged(Editable s) {
int count = s.length();
String str = s.toString();
if (count == 1) {
str = str + "'";
} else if (count == 3) {
str = str + "\"";
} else if ((count > 4) && (str.charAt(str.length() - 1) != '\"')) {
str = str.substring(0, str.length() - 2)
+ str.charAt(str.length() - 1) + "\"";
} else {
return;
}
mEditText.setText(str);
mEditText.setSelection(mEditText.getText().length());
}
}
Teşekkür ederim Stefan. Bu sorunu giderdi. Kodu afterTextChanged() yöntemlerine taşıdım ve anahtar durumunu kontrol etmek için boole kullanıyorum. İşe yaradı. Tekrar teşekkürler. –
Herhangi bir nedenden dolayı, kullanıcı hatayı düzelttikten sonra yazmayı denediğinde TextWatcher çalışmaz mı? Yani bir karakter yanlış yazılmış ve sonra onu siler ve TextWatcher 've' sembolleri eklemiyor tekrar yazmaya çalışır. Bunu nasıl giderebilirim? –
OnKeyListener Samsung Galaxy üzerinde çalışmıyor, ancak Motorola Xoom üzerinde çalışıyor. –