根据输入时间间隔判断EditText是否输入完成

原创 2016年08月31日 11:00:40

在android开发中经常会需要判断输入框的输入完成情况

根据个人经验总结出3条判断Editext输入完成

1添加text监听 在

afterTextChanged
事件中延时2000ms根据延时前和延时后的时间对比判断在2000ms内是否有再次输入情况
addTextChangedListener
 Boxname.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(final Editable s) {
      mill = System.currentTimeMillis();
            Log.i("+++++"+i, mill+""+System.currentTimeMillis());
            Handler handler = new Handler();
            handler.postDelayed(new splashhandler(), 2000);
            i++;
        }
    });
}
class splashhandler implements Runnable

{
    public void run() {

      System.currentTimeMillis();
        Log.i("+++++"+i, mill+""+System.currentTimeMillis());
       long ss= (System.currentTimeMillis())-mill;
        Log.i("*****+"+i, (System.currentTimeMillis())-mill+"");
        if(ss>=2000)//
{
            Log.i("+++++"+i, mill+"成功"+System.currentTimeMillis());//在2000ms内没有输入

        }
    }
}
2进行焦点监听 判断焦点是否离开(局限于有多个输入框否者焦点无法离开,而1没有限制)

et_warename.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View wrea_v, boolean hasFocus) {


        if (!hasFocus) {//判断焦点是否离开
            Map<String, String> params = new HashMap<>();
            String st = et_warename.getText().toString();
            params.put("areacode", st);

            OkHttpClientManager.postAsyn(confing.path + confing.queryareaname, params, new OkHttpClientManager.ResultCallback<queryareanameModel>() {
                @Override
                public void onError(Request request, Exception e) {

                }

                @Override
                public void onResponse(queryareanameModel name) {
                    et_warename.setText(name.getAreaname());
                    et_warecode.setText(name.getAreacode());
                    Wera_Focus = false;
                }
            });
        } else {
            Wera_Focus = true;
        }
    }


});

3 与1差不多,只是判断条件不同而已,个人推荐用3

     Boxname.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(final Editable s) {
                mill = System.currentTimeMillis();
                if (delayRun != null) {
                    //每次editText有变化的时候,则移除上次发出的延迟线程
                    handler.removeCallbacks(delayRun);
                }
//                editString = s.toString();

                //延迟800ms,如果不再输入字符,则执行该线程的run方法
                if (!TextUtils.isEmpty(Boxname.getText())) {
                    if (!ValidateHelper.isChineseString(Boxname.getText()+"")) {
                        handler.postDelayed(delayRun, 2000);
                    }
                }

            }


        });
    }

    private Handler handler = new Handler();

    /**
     * 延迟线程,看是否还有下一个字符输入
     */
    private Runnable delayRun = new Runnable() {

        @Override
        public void run() {
            //在这里调用服务器的接口,获取数据
//            getSearchResult(editString, "all", 1, "true");
            queryitem();
        }
    };


版权声明:本文为博主原创文章,未经博主允许不得转载。

如何判断Edittext输入完成

分享一个最近做的项目中遇到的问题 。。 需要监听用户输入完毕 然后的操作。。 想了很多办法 最后发现下面的 办法还是比较符合 逻辑的。 主要就是通过时间的间隔来判断可能用户输入完毕。    大家可以根...
  • ImTryCatchException
  • ImTryCatchException
  • 2016年04月02日 17:46
  • 683

安卓开发如何判断EditText是否有输入?

Android基础
  • bcbbcc
  • bcbbcc
  • 2015年12月28日 10:55
  • 915

android edittext监听输入完成,输入完成后,获取到值

假如你要做这样的一个功能,通过在编辑框输入一些字符进行搜索,输入完成后,再显示搜索结果,在输入的过程中,并不想一直通知服务器来获取数据。假设这样的一个场景,你想搜索“1024”这个游戏,那么你肯定不想...
  • HarryWeasley
  • HarryWeasley
  • 2015年12月28日 10:03
  • 12439

监听EditText输入框内输入内容的变化

输入框在开发中是一个很常见的控件,可能很多时候我们不仅仅是用来简单的用它来输入内容这么简单,有时候可能还需要拿到甚至是监听输入框里面的内容,然后作出一个合理的逻辑判断,对EditText监听安卓系统提...
  • xieluoxixi
  • xieluoxixi
  • 2017年03月10日 10:11
  • 342

Edittext 限制输入小数位数 判断输入是否为数字

在APP中用到Edittext的时候经常会遇到输入限制的问题, 1.在限制输入类型为double的数字时就需要做两步判断, android:layout_width="wrap_co...
  • zhengkaihong
  • zhengkaihong
  • 2016年11月17日 17:14
  • 1100

如何判断EditText 输入为空

如图 直接上代码 在Button点击监听中写入如下代码 // TODO Auto-generated method stub TextView tv=(TextView)findVie...
  • wu_android
  • wu_android
  • 2016年09月13日 09:37
  • 3022

Edittext 监听输入完成

最近项目中有个需求,更改标题判断输入结束调用API更改标题。开始直接设置的TextWatcher,然后在afterTextChanged 事件里调用API更改标题,然后发现每输入一个字都会调用一次A...
  • zhengkaihong
  • zhengkaihong
  • 2016年01月22日 15:39
  • 3372

Android判断EditText是否有输入内容的方法

1、强烈的推荐使用android.text.TextUtils.isEmpty(CharSequence及其子接口,实现类,子实现类)。这里需要注意trim()的问题。 这里说明一下CharSequ...
  • xzgww0902
  • xzgww0902
  • 2015年03月17日 11:05
  • 1842

android editview判断输入内容格式

白虹剑         殷天正从身旁包袱中取出一口长剑,对张无忌道:“这柄白虹剑送了给你,这剑虽不如老贼尼的倚天剑有名,但也是江湖上罕见的利器。”说着伸指在剑刃上一弹,那剑陡地弯了过来,随即弹直...
  • u010069940
  • u010069940
  • 2015年05月12日 23:31
  • 939

Android开发 我想设置edittext 输入完成后在调用监听方法

就是editText的监听事件 不要一变化就调用 要等输入完几秒钟 在调用。。。这个用什么方法去实现 求DEMO...
  • qinhuapi6738
  • qinhuapi6738
  • 2017年01月02日 03:09
  • 259
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:根据输入时间间隔判断EditText是否输入完成
举报原因:
原因补充:

(最多只允许输入30个字)