免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4516 | 回复: 1
打印 上一主题 下一主题

Android TextWatcher监控EditText中的输入内容并限制其输入字符个数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-12 12:35 |只看该作者 |倒序浏览
转:cat_fang

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



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

主布局:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:orientation="vertical"    android:layout_width="fill_parent"
  4.     android:layout_height="fill_parent"    >
  5. <TextView  android:id="@+id/tv"
  6.     android:layout_width="fill_parent"
  7.      android:layout_height="wrap_content"
  8.      android:textColor="@android:color/white"
  9.      android:ellipsize="marquee"
  10.      android:focusable="true"
  11.      android:marqueeRepeatLimit="marquee_forever"
  12.      android:focusableInTouchMode="true"
  13.      android:scrollHorizontally="true"
  14.         android:text="Please input the text:"    />
  15. <EditText android:id="@+id/ET"
  16.      android:layout_width="match_parent"
  17.      android:layout_height="wrap_content"
  18.     android:inputType="number"/></LinearLayout>
复制代码
java代码:

  1. package com.android.text;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.text.Editable;
  5. import android.text.TextWatcher;
  6. import android.util.Log;
  7. import android.widget.EditText;import android.widget.TextView;
  8. import android.widget.Toast;
  9. public class TextWatcherDemo extends Activity {
  10.     private TextView mTextView;
  11.     private EditText mEditText;
  12.     /** Called when the activity is first created. */
  13.     @Override    public void onCreate(Bundle savedInstanceState) {
  14.         super.onCreate(savedInstanceState);
  15.         setContentView(R.layout.main);
  16.         mTextView = (TextView)findViewById(R.id.tv);
  17.         mEditText = (EditText)findViewById(R.id.ET);
  18.         mEditText.addTextChangedListener(mTextWatcher);
  19.     }
  20.     TextWatcher mTextWatcher = new TextWatcher() {
  21.         private CharSequence temp;
  22.         private int editStart ;
  23.         private int editEnd ;
  24.         @Override
  25.        public void beforeTextChanged(CharSequence s, int arg1, int arg2,
  26.                 int arg3) {
  27.             temp = s;
  28.         }
  29.                @Override
  30.         public void onTextChanged(CharSequence s, int arg1, int arg2,
  31.                 int arg3) {
  32.             mTextView.setText(s);
  33.         }
  34.                @Override
  35.         public void afterTextChanged(Editable s) {
  36.             editStart = mEditText.getSelectionStart();
  37.             editEnd = mEditText.getSelectionEnd();
  38.             if (temp.length() > 10) {
  39.                 Toast.makeText(TextWatcherDemo.this,
  40.                         "你输入的字数已经超过了限制!", Toast.LENGTH_SHORT)
  41.                         .show();
  42.                 s.delete(editStart-1, editEnd);
  43.                 int tempSelection = editStart;
  44.                 mEditText.setText(s);
  45.                mEditText.setSelection(tempSelection);
  46.             }        }    };}
复制代码

论坛徽章:
0
2 [报告]
发表于 2012-08-26 17:26 |只看该作者
布局中EditText在android布局中经常用到
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP