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编程实现实时监听EditText文本输入的方法

希望本文所述对大家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
  • asp之家 软件编程 m.aspxhome.com