首页 > 系统 > Android > 正文

Android中监听EditText文本输入

2019-11-07 23:42:10
字体:
来源:转载
供稿:网友

转载自:http://blog.csdn.net/beyond0525/article/details/23352149

平时在做Android开发过程中经常要用到EditText,有时候可能需要监听你在TextView中输入的字数的状态和变化,以便于我们能做相应的提示和操作。我们可以通过下面的方式来实现。

[java] view plain copy 在CODE上查看代码片class EditChangedListener implements TextWatcher {         PRivate CharSequence temp;//监听前的文本         private int editStart;//光标开始位置         private int editEnd;//光标结束位置         private final int charMaxNum = 10;           @Override         public void beforeTextChanged(CharSequence s, int start, int count, int after) {             if (DEBUG)                 Log.i(TAG, "输入文本之前的状态");             temp = s;         }           @Override         public void onTextChanged(CharSequence s, int start, int before, int count) {             if (DEBUG)                 Log.i(TAG, "输入文字中的状态,count是一次性输入字符数");             mTvAvailableCharNum.setText("还能输入" + (charMaxNum - s.length()) + "字符");           }           @Override         public void afterTextChanged(Editable s) {             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);                 int tempSelection = editStart;                 mEditTextMsg.setText(s);                 mEditTextMsg.setSelection(tempSelection);             }           }     };  加上监听的事件。[java] view%20plain copy mEditTextMsg.addTextChangedListener(new EditChangedListener());  效果图:

。。。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表