根据输入时间间隔判断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();
        }
    };


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

一个例子包含mvp、rxjava以及retrofit2的使用

前言:之前就学习了相关的知识,一直未结合使用,现在打算结合起来使用,这个例子就是包含mvp、rxjava以及retrofit2的基本用法。下一篇文章会基于这篇文章的基础介绍dagger2的用法。首先,...

android之基于html5快速开发新闻客户端

使用369平台使用Html5快速开发的新闻客户端,在这篇android之使用Html5开发的基础上。 apk:http://dev.369cloud.com/down/compile/1/14719...

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

在android开发中经常会需要判断输入框的输入完成情况 根据个人经验总结出3条判断Editext输入完成 1添加text监听 在 afterTextChanged 事件中延时2000...

Linux 下监测指定路径下指定时间间隔内是否有指定的文件的生成

题目很拗口,感觉自己有必要说明一下,O(∩_∩)O~ 在 Liunx 程序设计中,有时我们需要写这样一个程序,当指定目录下有相应的新文件生成时,触发程序动作,这个触发的动作可能是解析新生成的文件异或...

时间间隔判断思路

问题:很多时候需要和时间和时间间隔 进行判断,bi

java--封装一类Java对象,用户从输入对话框输入两个日期,程序将判断两个日期的大小关系(比如输出:您输入的第二个日期大于第一个日期)以及两个日期之间的间隔天数(比如输出:2006年6月6日和

import java.util.*; public class Date { int year; int month; int day; public Da...

EditText监听输入完成

  • 2014年07月26日 21:29
  • 620KB
  • 下载

对EditText拓展完成输入内容分隔处理

今天没有时间看源码了。就写一篇今天的工作记录吧,为了解决一个小功能,就对Android的EditText作了功能上的拓展。      首先说下遇到的需求,在EditText中对用户输入的内容...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:根据输入时间间隔判断EditText是否输入完成
举报原因:
原因补充:

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