您的位置:首页 > 移动开发 > Android开发

Android两个EditText互相监听

2017-05-05 17:08 477 查看

Android两个EditText互相监听

解决问题:两个EditText互相监听会造成死循环,导致app处于假死状态

转载请标明出处:http://blog.csdn.net/collorye/article/details/71215998

1.添加标志位,标志是否被编辑

private boolean flag = true;


2.添加TextWatcher监听器

(1)第一个监听器
class TextWatcher1 implements TextWatcher {

@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}

@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}

@Override
public void afterTextChanged(Editable editable) {
if (!TextUtils.isEmpty(editable.toString())) {
if (flag) {
flag = false;
mEt2.setText((Double.parseDouble(editable.toString()) / 10) + "");
} else {
flag = true;
}
}
}
}
(2)第二个监听器
class TextWatcher2 implements TextWatcher {

@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}

@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}

@Override
public void afterTextChanged(Editable editable) {

if (!TextUtils.isEmpty(editable.toString())) {
if (flag) {
flag = false;
mEt1.setText((Double.parseDouble(editable.toString()) * 10) + "");
} else {
flag = true;
}
}
}
}


3.设置监听

TextWatcher1 textWatcher1 = new TextWatcher1();
TextWatcher2 textWatcher2 = new TextWatcher2();

mEt1.addTextChangedListener(textWatcher1);
mEt2.addTextChangedListener(textWatcher2);


总结:以上简单的三步就可以使两个EditText互相监听造成的死循环解决了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android EditText