android - How to use text watcher to do match between 3 EditText? -
i code in below. doesn't work. need perform simple addition , simple subtraction based on 2 of field have input.... question ends...
i needed make text because can't ask question if details isn't enough , code more details. i'm typing ask question. ignore , see code below. thank you
java code :
package com.test.easycount; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.text.editable; import android.text.textwatcher; import android.widget.edittext; import android.widget.toast; public class mainactivity extends appcompatactivity implements textwatcher { edittext num1, num2, sum; int fnumber, snumber, total; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); num1 = (edittext) findviewbyid(r.id.num1); num2 = (edittext) findviewbyid(r.id.num2); sum = (edittext) findviewbyid(r.id.sum); num1.addtextchangedlistener(this); num2.addtextchangedlistener(this); sum.addtextchangedlistener(this); fnumber = integer.parseint(num1.gettext().tostring()); snumber = integer.parseint(num2.gettext().tostring()); total = integer.parseint(sum.gettext().tostring()); } @override public void beforetextchanged(charsequence s, int start, int count, int after) { } @override public void ontextchanged(charsequence s, int start, int before, int count) { } @override public void aftertextchanged(editable s) { if (num1.gettext().tostring().length() > 0 && num2.gettext().tostring().length() > 0) { total = fnumber + snumber; sum.settext(integer.tostring(total)); } else if (num1.gettext().tostring().length() > 0 && sum.gettext().tostring().length() > 0) { snumber = total - fnumber; num2.settext(integer.tostring(snumber)); } else if (num2.gettext().tostring().length() > 0 && sum.gettext().tostring().length() > 0) { fnumber = total - snumber; num1.settext(integer.tostring(fnumber)); } } }
please me this....
remove initializing variables , paste them in aftertextchanged
@override public void aftertextchanged(editable s) { try { fnumber = integer.parseint(num1.gettext().tostring()); } catch (numberformatexception e) { fnumber = 0; log.e("numberformat", e.tostring()); } try { snumber = integer.parseint(num2.gettext().tostring()); } catch (numberformatexception e) { snumber = 0; log.e("numberformat", e.tostring()); } try { total = integer.parseint(sum.gettext().tostring()); } catch (numberformatexception e) { total = 0; log.e("numberformat", e.tostring()); } if (num1.gettext().tostring().length() > 0 && num2.gettext().tostring().length() > 0) { total = fnumber + snumber; sum.settext(integer.tostring(total)); } else if (num1.gettext().tostring().length() > 0 && sum.gettext().tostring().length() > 0) { snumber = total - fnumber; num2.settext(integer.tostring(snumber)); } else if (num2.gettext().tostring().length() > 0 && sum.gettext().tostring().length() > 0) { fnumber = total - snumber; num1.settext(integer.tostring(fnumber)); } }
Comments
Post a Comment