Kullanıcı her yeni karakter yazdığında bir EditText
alan içeriğini düzenlemek istiyorum. Temel olarak libphonenumber
kullanarak bir telefon numarasını biçimlendirmek istiyorum.Biçimlendirme EditText telefon numarası kullanıcı türleri olarak
Alan içeriğini okuyan ve telefon biçiminde biçimlendiren bir TextWatcher
uyguladım. Ama her zaman EditText
metnini biçimlendirilmiş dizeyle ayarladığımda, izleyici tekrar çağrılır, metni bir kez daha ayarlar ve bu sonsuz döngüde kalır.
Metni kullanıcı türleri olarak düzenlemenin en iyi veya uygun yolu nedir?
@Override
public void afterTextChanged(Editable editable) {
if (editable.length() > 1) {
try {
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
PhoneNumber numberProto = phoneUtil.parse(editable.toString(), "BR");
String formatted = phoneUtil.format(numberProto, PhoneNumberFormat.NATIONAL);
telephone.setText(formatted);
} catch (NumberParseException e) {
Log.d("Telefone", "NumberParseException was thrown: " + e.toString());
}
}
}
Başka bir soru sorabilir miyim, metni değiştirdiğimde, imleç metin alanının başına gider. Sonunda nasıl kalmasını sağlayabilirim? – Guilherme
İmleç konumlandırmasıyla ilgili bu yanıtı deneyin: http://stackoverflow.com/a/8035171/2399024 – donfuxx