android - 如何检测用户是否停止在 EditText android 中输入

标签 android android-edittext

我的布局中有一个 EditText 字段。当用户停止在该 edittext 字段中输入时,我想执行一个操作。我已经实现了 TextWatcher 并使用了它的功能

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


@Override
public void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) { } 

@Override
    public void afterTextChanged(Editable editable) {

    }

函数 onTextChangedafterTextChanged 在输入任何字符后立即被调用,但我想在用户完成在该 edittext 字段中输入后执行操作,就像 facebook在它的“签到”页面上执行。

我该如何实现?

最佳答案

这就是我的工作方式!

long delay = 1000; // 1 seconds after user stops typing
long last_text_edit = 0;
Handler handler = new Handler();

private Runnable input_finish_checker = new Runnable() {
    public void run() {
        if (System.currentTimeMillis() > (last_text_edit + delay - 500)) {
            // TODO: do what you need here
            // ............
            // ............
            DoStuff();
        }
    }
};

EditText editText = (EditText) findViewById(R.id.editTextStopId);
editText.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged (CharSequence s,int start, int count,
    int after){
    }
    @Override
    public void onTextChanged ( final CharSequence s, int start, int before,
    int count){
        //You need to remove this to run only once
        handler.removeCallbacks(input_finish_checker);

    }
    @Override
    public void afterTextChanged ( final Editable s){
        //avoid triggering event when text is empty
        if (s.length() > 0) {
            last_text_edit = System.currentTimeMillis();
            handler.postDelayed(input_finish_checker, delay);
        } else {

        }
    }
}

);

关于android - 如何检测用户是否停止在 EditText android 中输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35224459/

相关文章:

java - 从各种 EditText 字段获取文本

java - Android 条码扫描仪仅读取条码

java - AsyncTask 执行一次(仅当应用程序启动时)

android - 如何创建指向不同服务器的不同构建变体?

Android 软件键盘触发快速搜索栏

android - 我如何在 edittext 中为每个字符加下划线?

android - 从 Edittext 保存最新文本并在 onDestroy 之后恢复它

android - 升级 AndroidStuio 和 Gradle 后调试构建 APK 文件中缺少 CERT.RSA

android - Google Play 计费库 - querySkuDetailsAsync 偶尔会返回 BillingResponseCode.ERROR (6)

android - 使用阿拉伯语在 Android 中编辑文本问题