Android中监听EditText文本输入
16lz
2021-01-26
平时在做android开发过程中经常要用到EditText,有时候可能需要监听你在TextView中输入的字数的状态和变化,以便于我们能做相应的提示和操作。我们可以通过下面的方式来实现。
[java] view plain copy- classEditChangedListenerimplementsTextWatcher{
- privateCharSequencetemp;//监听前的文本
- privateinteditStart;//光标开始位置
- privateinteditEnd;//光标结束位置
- privatefinalintcharMaxNum=10;
- @Override
- publicvoidbeforeTextChanged(CharSequences,intstart,intcount,intafter){
- if(DEBUG)
- Log.i(TAG,"输入文本之前的状态");
- temp=s;
- }
- @Override
- publicvoidonTextChanged(CharSequences,intstart,intbefore,intcount){
- if(DEBUG)
- Log.i(TAG,"输入文字中的状态,count是一次性输入字符数");
- mTvAvailableCharNum.setText("还能输入"+(charMaxNum-s.length())+"字符");
- }
- @Override
- publicvoidafterTextChanged(Editables){
- if(DEBUG)
- Log.i(TAG,"输入文字后的状态");
- /**得到光标开始和结束位置,超过最大数后记录刚超出的数字索引进行控制*/
- editStart=mEditTextMsg.getSelectionStart();
- editEnd=mEditTextMsg.getSelectionEnd();
- if(temp.length()>charMaxNum){
- Toast.makeText(getApplicationContext(),"你输入的字数已经超过了限制!",Toast.LENGTH_LONG).show();
- s.delete(editStart-1,editEnd);
- inttempSelection=editStart;
- mEditTextMsg.setText(s);
- mEditTextMsg.setSelection(tempSelection);
- }
- }
- };
加上监听的事件。
[java] view plain copy- mEditTextMsg.addTextChangedListener(newEditChangedListener());
效果图:
更多相关文章
- Android(安卓)之SearchView翻译
- Android输入事件InputReader和InputDispatcher分析
- Android(安卓)通话处理流程【转】
- Android(安卓)5.0输入系统分析之InputReader线程分析
- Android默认输入法语言的修改以及SettingsProvider作用
- 如何在Android模拟器上安装apk文件
- 在Eclipse中安装ADT
- android滑动事件监听
- Android(安卓)项目如何获取MD5和SHA1