如何检查EditText长度,如果更多的是“X”将全文放到另一个EditText?

问题描述 投票:0回答:2

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

第一个从扫描仪获得第二个数量的BarCode。

但我必须这样做,如果我在qta EditText和长度是>那4我将它识别为条形码,我将把它放在条形码EditText。

我试图通过设置onFocus更改,但这不起作用,我甚至尝试使用TextWatched onTextChange来检查qta edittext lenght> 4但这只是将4个数字放入条形码EditText

android android-edittext
2个回答
1
投票

您必须使用焦点更改事件而不是文本更改事件。因为文本更改将触发每个文本更改。

如果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;
      }
   } 
}

0
投票

我在这里看到使用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
            }
        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.