Android,两个互相影响的EditText如何避免死循环
来源:互联网 发布:c语言统计数字个数 编辑:程序博客网 时间:2024/04/28 16:04
twMt1 = new TextWatcher() { @Override public void afterTextChanged(Editable s) { edt2.addTextChangedListener(twMt2); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { edt2.removeTextChangedListener(twMt2); int deposite = Util.parseInt(s.toString()); Float discount = (selectMt.getSalsePrice()*selectMt.getMtNum())*deposite/100; edt2.setText(Util.getDoubleTwoFloat(discount)); } }; twMt2 = new TextWatcher() { @Override public void afterTextChanged(Editable s) { edt.addTextChangedListener(twMt1); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { edt.removeTextChangedListener(twMt1); Float discount = Util.parseFloat(s.toString()); int deposite=0; if((selectMt.getSalsePrice()*selectMt.getMtNum())!=0f){ deposite = (int) (discount/(selectMt.getSalsePrice()*selectMt.getMtNum())*100); } Log.i("info_out",deposite+"折扣率"); edt.setText(deposite+""); } }; edt.addTextChangedListener(twMt1); edt2.addTextChangedListener(twMt2);