欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android编程实现实时监听EditText文本输入的方法

程序员文章站 2023-01-02 23:51:45
本文实例讲述了android编程实现实时监听edittext文本输入的方法。分享给大家供大家参考,具体如下: 平时在做android开发过程中经常要用到edittext,...

本文实例讲述了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控件用法总结》、《android开发入门与进阶教程》、《android视图view技巧总结》、《android编程之activity操作技巧总结》、《android数据库操作技巧总结》及《android资源操作技巧汇总

希望本文所述对大家android程序设计有所帮助。