Android编程实现实时监听EditText文本输入的方法
作者:Beyond0525 时间:2023-04-23 02:58:16
本文实例讲述了Android编程实现实时监听EditText文本输入的方法。分享给大家供大家参考,具体如下:
平时在做Android开发过程中经常要用到EditText,有时候可能需要监听你在TextView中输入的字数的状态和变化,以便于我们能做相应的提示和操作。我们可以通过下面的方式来实现。
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);
}
}
};
加上监听的事件。
mEditTextMsg.addTextChangedListener(new EditChangedListener());
效果图:
希望本文所述对大家Android程序设计有所帮助。
标签:Android,EditText
0
投稿
猜你喜欢
C#实现密码验证与输错密码账户锁定
2022-04-05 13:22:22
Android中使用GridView进行应用程序UI布局的教程
2022-03-19 15:18:06
SpringBoot2.0解决Long型数据转换成json格式时丢失精度问题
2022-10-31 16:56:24
Java 延迟队列的常用的实现方式
2022-06-30 13:57:00
java使用Socket实现SMTP协议发送邮件
2022-06-08 19:25:50
SpringMVC HttpMessageConverter消息转换器
2023-01-13 04:57:45
IDEA部署JavaWeb项目到Tomcat服务器的方法
2023-11-02 23:21:22
Android基于ImageView绘制的开关按钮效果示例
2023-02-22 19:39:11
Android中 动态改变对话框值的方法
2023-08-17 19:44:30
Android编程实现状态保存的方法分析
2023-07-17 12:54:45
微信公众号开发之回复图文消息java代码
2022-11-24 00:56:19
Android 8.1 Launcher3实现动态指针时钟功能
2023-09-27 18:53:09
C#利用栈实现加减乘除运算
2021-09-16 06:56:19
implicit关键字做自定义类型隐式转换的方法
2021-10-22 20:00:40
Java中常用缓存Cache机制的实现
2023-05-27 23:32:22
java JVM原理与常识知识点
2022-06-24 16:26:50
java面试常见问题之Hibernate总结
2023-11-27 10:37:05
maven为MANIFEST.MF文件添加内容的方法
2022-10-29 11:15:56
Java C++ 算法题解leetcode1608特殊数组特征值
2023-05-21 21:09:01
Java详细分析讲解泛型
2023-02-05 07:56:02