假设我在p1和inp2中有2个EditText对象。如果我在inp1中输入内容,我希望它出现在inp2中,反之亦然。在任何一个中做出的改变也应该改变另一个。我实际上想要两个EditText对象分别在基数10和2中输入数字。当我输入二进制数字时,我希望它的等效十进制数出现在另一个EditText中,反之亦然,而不使用任何按钮或任何东西。有没有相当于EditText按钮的onClick属性的东西?只要EditText文本发生更改,它就可以自动调用函数。 我希望我能说清楚我的问题。 谢谢。
答案 0 :(得分:0)
您需要在这两个字段上使用TextWatcher。这个question的答案基本上就是你所描述的
答案 1 :(得分:0)
你可以像这样使用TextWatcher
tagNameEditText.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) {
// set text or result in other EditText here
}
@Override
public void afterTextChanged(Editable s) {
}
});
在onTextChanged()方法的Listener中,您可以在其他EditText中设置文本
答案 2 :(得分:0)
使用TextWatcher。 这是简短的代码:
private final TextWatcher edit_one_Watcher = new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
// enter your logic here
//and print in second edittext
}
public void afterTextChanged(Editable s) {
}
};
和
private final TextWatcher edit_second_Watcher = new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
// enter your logic here
//and print in first edittext
}
public void afterTextChanged(Editable s) {
}
};
注意:使用boolean / flag忽略autotextchange。
.i.e. boolean ignoreFirstTextChange = true;
.i.e. boolean ignoreSecondTextChange = true;