android - Method append() of EditText doesn't work in custom dialog -


i'm trying add chars entering text in edittext field, method append() not working.

@override     public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {         view rootview = inflater.inflate(r.layout.temp, container, false);         button = (button)rootview.findviewbyid(r.id.button);         button.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                  final dialog dialog = new dialog(getactivity());                 dialog.setcontentview(r.layout.enter_sms_dialog);                 dialog.settitle(html.fromhtml("<font color='#000000'>phone number verification</font>"));                 edsmscode = (edittext) dialog.findviewbyid(r.id.edsmscode);                 edsmscode.addtextchangedlistener(new textwatcher() {                     int len = 0;                     @override                     public void beforetextchanged(charsequence s, int start, int count, int after) {                         string str = edsmscode.gettext().tostring();                         len = str.length();                     }                     @override                     public void ontextchanged(charsequence s, int start, int before, int count) {}                     @override                     public void aftertextchanged(editable s) {                         string str = edsmscode.gettext().tostring();                         if (str.length() == 3 && len < str.length()) {                             edsmscode.append("-");                         }                     }                 });                 dialog.show();             }         });         return rootview;     } 

but method works when use code edittext in fragment's root view. bug?

try replacing edsmscode (edittext)getcurrentfocus() (get view that's being focused, in case edittext) in aftertextchanged() method.

public void aftertextchanged(editable s) {    edittext edittext = (edittext)getcurrentfocus();    string str = edittext.gettext().tostring();    if (str.length() == 3 && len < str.length()) {        edittext.append("-");    } } 

source: https://stackoverflow.com/a/5951792/5837758

if doesn't solve it, can try setting edsmscode final, according answer: https://stackoverflow.com/a/27094374/5837758


Comments

Popular posts from this blog

java - Callback from new thread to class from which thread was initiated -

php - Extract Text from HTTP referer -

Receive udp packets in android gstreamer -