Tôi đang cố gắng tạo hai EditText nơi tôi nhập bất kỳ thứ gì vào một trong EditText, văn bản tôi đã nhập sẽ được hiển thị trên EditText khác.Android: không thể có hai addTextChangedListener cho hai EditText?
private EditText input_a;
private EditText input_b;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
input_a = (EditText) findViewById(R.id.input_a);
input_b = (EditText) findViewById(R.id.input_b);
input_a.setOnFocusChangeListener(this);
input_b.setOnFocusChangeListener(this);
}
@Override
public void onFocusChange(View v,boolean hasFocus) {
// TODO Auto-generated method stub
if(v==input_a && hasFocus){
input_a.setText("");
input_b.setText("");
input_a.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
input_b.setText(input_a.getText());
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
// TODO Auto-generated method stub
}
});
}else if(v==input_b && hasFocus){
input_b.setText("");
input_a.setText("");
input_b.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
input_a.setText(input_b.getText());
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
// TODO Auto-generated method stub
}
});
}
Vì vậy, khi tôi gõ vào input_a, nó hoạt động tốt, các văn bản tôi đầu vào được thể hiện trong input_b Tuy nhiên, khi tôi gõ vào input_b, việc áp dụng chặt chẽ bất ngờ. Tôi không hiểu tại sao hai khối mã thực sự giống nhau nhưng chỉ một trong số chúng hoạt động.
Tôi nghĩ vậy, điều đó có thể giải thích tại sao tôi nhận được một chuỗi thông báo lỗi giống như một vòng lặp vô hạn. Cảm ơn bạn rất nhiều! Tôi đã thử removeTextChangedListener trước khi thêm TextChangedListener mới và nó hoạt động! – xiaoyao