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
Post a Comment