男人要像阳光 2016-09-14 02:31 采纳率: 0%
浏览 2033
已结题

Android EditText利用TextWatcher判断问题

android 开发,有一个需求,就是利用扫描仪快速往app界面中的Edittext输入一串数字,当这串数字符合规则的时候,调用查询方法。否则不符合规则,就提示。但是大家用过这个TextWatcher的都知道,它每次改变内容都会调用方法,所以致使不到一秒的时间连续调用好多次不符合规则的情况,程序就异常了。不知道有什么方法可以解决,下面是简单的举例:

 package com.xzsj.measure;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Window;
import android.widget.EditText;
import android.widget.Toast;

public class GoneNActivity extends Activity {
    private EditText editText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_gone_n);
        // 绑定EditText输入框
        editText = (EditText) findViewById(R.id.editText1);
        // 实现文字内容改变监听(TextWatcher)
        editText.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                // 内容改变后的监听方法
                if (s.toString().length() == 10) {
                    Toast.makeText(GoneNActivity.this, "格式正确!", Toast.LENGTH_SHORT).show();
                } else {
                    // 不符合格式,(length等于10符合规则,那么这个else分支,连续执行9次,所以异常了,有没有什么办法,实现类似效果,但是不异常)
                    Toast.makeText(GoneNActivity.this, "格式错误!", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}

  • 写回答

5条回答 默认 最新

  • Code-Porter 博客专家认证 2016-09-14 02:41
    关注

    你把代码放到onTextChanged方法中试一下。

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!