Estoy tratando de hacer dos EditText donde escribo algo en uno de EditText, el texto que escribí se mostrará en el otro EditText.Android: no puede tener dos addTextChangedListener para dos 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
}
});
}
Así que cuando escribo en el input_a, que funciona bien, la entrada de texto que se muestra en la input_b, sin embargo, cuando escribo en el input_b, la aplicación se cierre inesperadamente. No veo por qué los dos bloques de códigos son realmente similares, pero solo uno de ellos funciona.
Creo que sí, eso puede explicar por qué recibí una serie de mensajes de error que parece un ciclo infinito. Muchas gracias! Probé eliminarTextChangedListener antes de agregar el nuevo TextChangedListener y funciona. – xiaoyao