android TextWatcher

searchEdit.addTextChangedListener(searchWatcher);//调用TextWatcher的方法

private TextWatcher searchWatcher = new TextWatcher() {//TextWatcher观察输入框中输入的内容
		//在向输入框中输入之后
		public void afterTextChanged(Editable arg0) {//arg0为输入框中的所有文字
			System.out.println("--------00-------" + arg0);
		}

		public void beforeTextChanged(final CharSequence s, final int start, final int count, final int after) {
			System.out.println("charsequence----" + s + "--start---==" + start + "--count====" + count + "--after*****" + after);

                        // s:之前的文字内容   start:添加文字的位置   count:一直是0  after:此次添加的文字总数(并不是输入框中的文字的总数)

                }public void onTextChanged(final CharSequence s, final int start, final int before, final int count) {Log.d("TAG", "[TextWatcher][onTextChanged]" + s);System.out.println("onTextChanged" + "charsequence----" + s + "--start---==" + start + "--count====" + count);
                        //s:文本框中输入的所有文字  start:添加文字的位置 before:一直是0 count:此次添加文字的总个数
                }
};


TextWatcher可以对EditText中输入的内容进行限制

<EditText android:id="@+id/ET" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"
    android:inputType="number"/>
摘自: http://www.cnblogs.com/cat-fang/archive/2011/04/12/2013428.html
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);
            }
        }
    };



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值