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);


原创粉丝点击