addTextChangedListener和TextWatcher实现微信编辑框的输入监听效果
来源:互联网 发布:linux查看用户登录日志 编辑:程序博客网 时间:2024/05/22 17:31
最近在做一个仿照微信的UI设计,其中微信的输入框监听效果挺人性化的,倘若编辑框里面没有内容,登录按钮就不高亮,并且不让你登录。所以在网上找一下实现的方法,最后发现了有addTextChangedListener 这么一个东东。最后实现效果还是不错滴( ^_^ )。废话不多说,进入正文。
addTextChangedListener内部定义了三个方法:分别是
@Override public void beforeTextChanged(CharSequence s, int start, int count,int after) { }//输入前监听编辑框的情况 @Overridepublic void onTextChanged(CharSequence s, int start, int before,int count) { }//输入过程中监听编辑框的情况 @Overridepublic void afterTextChanged(CharSequence s, int start, int count,int after) { } //输入接受后监听编辑框的情况
</pre><pre class="java" name="code">
其中的CharSequence s参数表示的是编辑框的内容,int start表示的是未输入时编辑框的文字长度,int before表示的是输入后文本的长度。
其中的onTextChanged方法不太了解其用法,但onTextChange方法则可以在输入过程中监听用户的输入,如果用户输入不应该出现的字符,你就可以在这个输入过程中检验输入的合法性,并给与提示。而afterTextChange方法则监听输入结束后的文本情况。
在这里我们则用afterTextChange监听输入后的情况,检验编辑框的字符是否为空。但是微信上面有两个输入框,分别是用户名和密码。所以在需要在编辑框里面监听本编辑框不为空的同时检验另一个编辑框的字符不为空,才能让按钮高亮。粗略的设计了一下,基本实现了功能。
phone_account.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before,int count) { }@Overridepublic void afterTextChanged(Editable s) {if(s.length()!=0){clean_account.setImageResource(R.drawable.editview_clean);if(phone_password.getText().toString().equals("")){login.setBackgroundResource(R.drawable.button_green_useless);}else{login.setBackgroundResource(R.drawable.button_green);} }else{clean_account.setImageResource(R.drawable.touming);login.setBackgroundResource(R.drawable.button_green_useless);}}}); phone_account.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { // TODO Auto-generated method stub if (hasFocus) { if(phone_account.getText().toString().equals("")){}else{ clean_account.setImageResource(R.drawable.editview_clean); } phone.setBackgroundResource(R.drawable.editview_bord_onfocus); clean_password.setImageResource(R.drawable.touming); }else { phone.setBackgroundResource(R.drawable.editview_bord_unfocus);} } }); phone_password.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before,int count) { }@Overridepublic void afterTextChanged(Editable s) {if(s.length()!=0){clean_password.setImageResource(R.drawable.editview_clean);if(phone_account.getText().toString().equals("")){login.setBackgroundResource(R.drawable.button_green_useless);}else{login.setBackgroundResource(R.drawable.button_green);} }else{clean_password.setImageResource(R.drawable.touming);login.setBackgroundResource(R.drawable.button_green_useless);}}}); phone_password.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { // TODO Auto-generated method stub if (hasFocus) { if(phone_password.getText().toString().equals("")){}else{ clean_password.setImageResource(R.drawable.editview_clean); } password.setBackgroundResource(R.drawable.editview_bord_onfocus); clean_account.setImageResource(R.drawable.touming); }else { password.setBackgroundResource(R.drawable.editview_bord_unfocus);} }
0 0
- addTextChangedListener和TextWatcher实现微信编辑框的输入监听效果
- 使用EditText的addTextChangedListener(TextWatcher watcher)方法对EditText实现监听
- TextWatcher:监听编辑框EditText中内容的改变
- android TextWatcher 监听textview和edittext的文字输入改变
- Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制
- Android listView中 editText 的 addTextChangedListener 和 OnItemClickListener 监听
- addTextChangedListener(new TextWatcher()){}
- addTextChangedListener(TextWatcher watcher)
- 详解EditText输入监听TextWatcher
- Android TextWatcher三个回调详解,监听EditText的输入
- Android TextWatcher三个回调详解,监听EditText的输入
- TextWatcher编辑框监听器
- TextWatcher编辑框监听器
- TextWatcher编辑框监听器
- TextWatcher编辑框监听器
- 自定义textWatcher实现editText输入框的输入固定的字节数的目的
- swift实现ios类似微信输入框跟随键盘弹出的效果
- Swift 实现 iOS 类似微信输入框跟随键盘弹出的效果
- 使用Java做一个山寨的IE浏览器
- 利用偏移命令绘图
- Ubuntu使用exchange日历
- 浅谈ListView自带的滚动条和ScrollView中嵌套ListView的区别
- 类和方法(枚举类型)
- addTextChangedListener和TextWatcher实现微信编辑框的输入监听效果
- iOS开发中的几个小坑
- 【菜鸟也疯狂C#系列】——流程控制
- ORACLE EBS/ERP 固定资产总账模块分录
- 我开通博客了
- 实用技巧---java路径问题完全解答(二),相对路径与绝对路径。
- sicily1121 Tri Tiling
- JavaScript--------闭包 取for循环i
- Android NDK使用libjpeg解析JPEG图片,并显示到SurfaceView上