我的布局中有一个EditText字段.我想在用户停止输入该edittext字段时执行 *** 作.我已经实现了TextWatcher并使用了它的功能
@OverrIDepublic voID beforeTextChanged(CharSequence s, int start, int count, int after) { }@OverrIDepublic voID onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) { } @OverrIDe public voID afterTextChanged(Editable editable) { }
在键入任何字符之后立即调用onTextChanged和afterTextChanged函数,但我想在用户完成在该edittext字段中输入后执行 *** 作,就像facebook上的“Check In”页面一样.
我该如何实现呢?
解决方法:
这就是我为我工作的方式!
long delay = 1000; // 1 seconds after user stops tyPinglong 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 // ............ // ............ DoStaff(); } }};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 { } }});
总结 以上是内存溢出为你收集整理的如何检测用户是否在EditText android中停止输入全部内容,希望文章能够帮你解决如何检测用户是否在EditText android中停止输入所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)