Android TextWatcher三个回调以及监听EditText的输入案例详解
// 用于屏蔽空格输入的TextWatcher
TextWatcher watcher = new TextWatcher() {
private String mBefore;// 用于记录变化前的文字
private int mCursor;// 用于记录变化时光标的位置
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
mBefore = s.toString();
mCursor = start;
Log.d(TAG, "beforeTextChanged: " + s + ", " + mCursor);
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.d(TAG, "onTextChanged: " + s);
}
@Override
public void afterTextChanged(Editable s) {
Log.d(TAG, "afterTextChanged: " + s);
// 这里图方便,是在afterTextChanged判断是否输入之后含有空格,并不是最好的方案
// 理论上应该在onTextChanged中判断输入内容
if (s.toString().contains(" ")) {
Log.i(TAG, "onTextChanged: 包含空格, 设置" + mBefore);
et.removeTextChangedListener(this);
et.setText(mBefore);
et.addTextChangedListener(this);
et.setSelection(mCursor);
}
}
};
et.addTextChangedListener(watcher);
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播