当前位置: 移动技术网 > IT编程>移动开发>Android > Android TextWatcher监控EditText中的输入内容并限制其个数

Android TextWatcher监控EditText中的输入内容并限制其个数

2019年07月24日  | 移动技术网IT编程  | 我要评论

嫉妒的密码国语版全集,谢颖颖凸点照片,防务新观察最新

布局中edittext在android布局中经常用到,对edittext中输入的内容也经常需要进行限制,我们可以通过textwatcher去观察输入框中输入的内容,作个笔记。

主布局:

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
<textview android:id="@+id/tv"
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content" 
  android:textcolor="@android:color/white" 
  android:ellipsize="marquee" 
  android:focusable="true" 
  android:marqueerepeatlimit="marquee_forever" 
  android:focusableintouchmode="true" 
  android:scrollhorizontally="true"  
  android:text="please input the text:"
  />
<edittext android:id="@+id/et" 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content"
  android:inputtype="number"/>
</linearlayout>

java代码:

package com.android.text;

import android.app.activity;
import android.os.bundle;
import android.text.editable;
import android.text.textwatcher;
import android.util.log;
import android.widget.edittext;
import android.widget.textview;
import android.widget.toast;

public class textwatcherdemo extends activity {
  private textview mtextview;
  private edittext medittext;
  /** called when the activity is first created. */
  @override
  public void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.main);
    mtextview = (textview)findviewbyid(r.id.tv);
    medittext = (edittext)findviewbyid(r.id.et);
    medittext.addtextchangedlistener(mtextwatcher);
  }
  textwatcher mtextwatcher = new textwatcher() {
    private charsequence temp;
    private int editstart ;
    private int editend ;
    @override
    public void beforetextchanged(charsequence s, int arg1, int arg2,
        int arg3) {
      temp = s;
    }

    @override
    public void ontextchanged(charsequence s, int arg1, int arg2,
        int arg3) {
      mtextview.settext(s);
    }

    @override
    public void aftertextchanged(editable s) {
      editstart = medittext.getselectionstart();
      editend = medittext.getselectionend();
      if (temp.length() > 10) {
        toast.maketext(textwatcherdemo.this,
            "你输入的字数已经超过了限制!", toast.length_short)
            .show();
        s.delete(editstart-1, editend);
        int tempselection = editstart;
        medittext.settext(s);
        medittext.setselection(tempselection);
      }
    }
  };
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网