OnEditorActionListener与TextWatcher 的使用

1. TextView.OnEditorActionListener

一般由EditText控件使用,监听当输入内容按下Enter键后时响应的事件。

public static interface

TextView.OnEditorActionListener

android.widget.TextView.OnEditorActionListener
public abstract boolean onEditorAction (TextView v, int actionId, KeyEvent event)
Added in  API level 3

Called when an action is being performed.

Parameters
v The view that was clicked.
actionId Identifier of the action. This will be either the identifier you supplied, or EditorInfo.IME_NULL if being called due to the enter key being pressed.
event If triggered by an enter key, this is the event; otherwise, this is null.
Returns
  • Return true if you have consumed the action, else false.
2.TextWatcher 

public interface

TextWatcher

implements  NoCopySpan

Public Methods
abstract void afterTextChanged( Editable s)
This method is called to notify you that, somewhere within  s, the text has been changed.
abstract void beforeTextChanged( CharSequence s, int start, int count, int after)
This method is called to notify you that, within  s, the  count characters beginning at  start are about to be replaced by new text with length  after.
abstract void onTextChanged( CharSequence s, int start, int before, int count)
This method is called to notify you that, within  s, the  count characters beginning at  start have just replaced old text that had length before.
调用顺序如下:

beforeTextChanged(CharSequence s, int start, int count, int after)

表示s字符串中,即将要发生的动作:从start开始的长为count个字符将被after个新字符取代;

onTextChanged(CharSequence s, int start, int before, int count)

表示已经发生的动作,用于通知调用者,s为变化后的字符串,表示:从start开始的count个字符,已经取代了before个旧字符。

afterTextChanged(Editable s)

用于通知调用者,s已经发生了变化,这个参数值是变化后的。

示例:

mEditText.addTextChangedListener(mTextWatcher);

TextWatcher mTextWatcher = new TextWatcher() {
  
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            Log.d(TAG,"beforeTextChanged, s = " + s + ", start = " + start + ", count = " +count
                + ", after = " + after);
        }
       
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            Log.d(TAG,"onTextChanged, s = " + s + ", start = " + start + ", before = " + before
                + ", count = " + count);
        }
       
        @Override
        public void afterTextChanged(Editable s) {
            Log.d(TAG,"afterTextChanged, s = " + s);
            }
        }
    };

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值