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