首页 > 系统 > Android > 正文

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

2019-12-12 03:08:16
字体:
来源:转载
供稿:网友

布局中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);      }    }  };}

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

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