gpt4 book ai didi

java - EditText On update/onChange value 添加监听器

转载 作者:行者123 更新时间:2023-12-02 04:50:16 25 4
gpt4 key购买 nike

我的 Activity 中有 2 个 EditText,比如说 editText1editText2 和一个双变量 d=200

我希望当用户更改/插入 editText1 的值时,editText2 值将实时更新为 editText1*d

此外,当用户更改/插入 editText2 的值时,editText1 将实时更新为 editText2*d

我尝试使用 addTextChangedListener->onTextChanged 但它对于一个编辑文本工作正常,当我为两个 editText 设置此功能时,应用程序崩溃因为它创建了一个无限循环,我该如何解决这个问题?

更新:下面是我的代码

et1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

Editable a = et1.getText();
Double aa = Double.parseDouble(a.toString())*100;
String aaa = aa.toString();

et2.setText(aaa);

}

@Override
public void afterTextChanged(Editable s) {

}
});

et2.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

Editable b=et2.getText();
Double bb=Double.parseDouble(b.toString());
String bbb=bb.toString();
et1.setText(bbb);


}

@Override
public void afterTextChanged(Editable s) {

}
});

最佳答案

EditText et1, et2;

TextWatcher watcher1 = new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
Editable a = et1.getText();
Double aa = Double.parseDouble(a.toString())*100;
String aaa = aa.toString();
et2.removeTextChangedListener(watcher2);
et2.setText(aaa);
et2.addTextChangedListener(watcher2);
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub

}
};

TextWatcher watcher2 = new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
Editable b=et2.getText();
Double bb=Double.parseDouble(b.toString());
String bbb=bb.toString();
et1.removeTextChangedListener(watcher1);
et1.setText(bbb);
et1.addTextChangedListener(watcher1);
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub

}
};
et1.addTextChangedListener(watcher1);
et2.addTextChangedListener(watcher2);

关于java - EditText On update/onChange value 添加监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56450086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com