Java Android中的onTextChanged事件

Java Android中的onTextChanged事件,java,android,android-activity,android-edittext,android-button,Java,Android,Android Activity,Android Edittext,Android Button,我的问题有点复杂,我必须编辑文本框。现在,当我在first EditText上键入内容时,它会显示在second EditText上。当在second EditText上键入时,它会在first EditText上设置,反之亦然。但它在任何一个EditText的setText上都会出现一些错误。下面是我的代码 Boolean flag,flag2; txt_editText_1.addTextChangedListener(new TextWatcher() { @Override public

我的问题有点复杂,我必须编辑文本框。现在,当我在first EditText上键入内容时,它会显示在second EditText上。当在second EditText上键入时,它会在first EditText上设置,反之亦然。但它在任何一个EditText的setText上都会出现一些错误。下面是我的代码

Boolean flag,flag2;
txt_editText_1.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,int count, int after) {}
@Override    
public void onTextChanged(CharSequence s, int start,int before, int count)
{
if(s.length() != 0)
{
flag=true;
flag2=false;
if(flag==true)
{
String result=txt_editText_1.getText().toString().trim();
txt_editText_2.setText(""+result);
}
}
}
});

txt_editText_2.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,int count, int after) {}
@Override    
public void onTextChanged(CharSequence s, int start,int before, int count)
{
if(s.length() != 0)
{
flag=false;
flag2=true;
if(flag2==true)
{
String result=txt_editText_2.getText().toString().trim();
txt_editText_1.setText(""+result);
}
}
}
});

但它不起作用。那么,谁能给我一些建议呢

我找到了答案。我已经在EditText上设置了touch事件以保持flagBoolean状态

Boolean flag,flag2;
txt_editText_1.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(MotionEvent.ACTION_UP == event.getAction()) 
{
flag=true;
flag2=false;
return true;
}
}
});

txt_editText_2.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(MotionEvent.ACTION_UP == event.getAction()) 
{
flag=false;
flag2=true;
return true;
}
}
});

txt_editText_1.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,int count, int after) {}
@Override    
public void onTextChanged(CharSequence s, int start,int before, int count)
{
if(s.length() != 0)
{
if(flag==true)
{
String result=txt_editText_1.getText().toString().trim();
txt_editText_2.setText(""+result);
}
}
}
});

txt_editText_2.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,int count, int after) {}
@Override    
public void onTextChanged(CharSequence s, int start,int before, int count)
{
if(s.length() != 0)
{
if(flag2==true)
{
String result=txt_editText_2.getText().toString().trim();
txt_editText_1.setText(""+result);
}
}
}
});

告诉我们可能出了什么问题?你想发生什么?你没有给我们太多关于你想要实现什么的信息这两个标志的用途是什么?我只想删除它们,它们似乎多余/无用。我已经编辑了我的问题@JozeRiBut通过移除那个标志,它不能解决我的问题@Chance您得到的确切错误是什么?