Android 如何检查EditText长度,如果超过“X”,则将全文放入另一个EditText?

Android 如何检查EditText长度,如果超过“X”,则将全文放入另一个EditText?,android,android-edittext,Android,Android Edittext,实际上我的应用程序中有两个EditText 第一个从扫描仪获取条形码,第二个数量 但是我必须这样做,如果我在qta编辑文本中,长度>4,我会将其识别为条形码,并将其放入条形码编辑文本中 我试图设置一个onFocus更改,但这不起作用,我甚至尝试使用TextWatched-onTextChange检查qta edittext Length>4,但这只是在条形码edittext中输入4个数字,您必须使用焦点更改事件而不是文本更改事件。因为每次文本更改都会触发文本更改 如果onFocus更改事件不起作

实际上我的应用程序中有两个EditText

第一个从扫描仪获取条形码,第二个数量

但是我必须这样做,如果我在qta编辑文本中,长度>4,我会将其识别为条形码,并将其放入条形码编辑文本中


我试图设置一个onFocus更改,但这不起作用,我甚至尝试使用TextWatched-onTextChange检查qta edittext Length>4,但这只是在条形码edittext中输入4个数字,您必须使用焦点更改事件而不是文本更改事件。因为每次文本更改都会触发文本更改

如果onFocus更改事件不起作用,您可以尝试以下代码段

您的活动应该实现OnFocusChangeListener。这样,您的所有更改都将在该方法上,但您必须通过使用v.getId获取视图id并相应地处理来检查哪个视图更改了焦点

@Override
public void onFocusChange(View v, boolean hasFocus) {
   if(!hasFocus)
    {
      switch(v.getId()){
        case r.id.editText1:
          //TODO:your_logic_goes_here
        break;
      }
   } 
}

我认为在此处使用TextChangedListener没有任何问题:

editText.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) {
        }
        @Override
        public void afterTextChanged(Editable s) {
            if (s.length()>4){
                editTextBarCode.setText(s.toString());
            }else {
                //else you can set it to the same edit text or whatever you want
            }
        }
    });