打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
EditText输入事件截获与监听
本节介绍一下EditText中进行文字截获和事件监听。
预期目标:如下图,输入框中每输入一个字符,下面的TextView可以迅速的显示出来输入框中的内容
1.第一种实现方法:使用setOnKeyListener(),不过这种方式只能监听硬键盘事件
Java代码 
 
edittext.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
textview.setText(edittext.getText());
return false;
}
});
2.使用TextWatcher类,这种方式是可以监听软键盘和硬键盘的,我们只需要实现onTextChanged方法即可,另外TextWatcher还提供了beforeTextChanged和afterTextChanged方法,用于更加详细的输入监听处理
Java代码 
 
edittext.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
textview.setText(edittext.getText());
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
3、代码片段:实现当输入到最大值时则不允许再输入了,另外,由于EditText并没有提供给我们EditText的禁止输入功能,以下方法也实现了此功能。
Java代码 
 
private void setEditable(EditText mEdit, int maxLength, boolean value) {
if (value) {
mEdit.setFilters(new InputFilter[] { new MyEditFilter(maxLength) });
mEdit.setCursorVisible(true);
mEdit.setFocusableInTouchMode(true);
mEdit.requestFocus();
} else {
mEdit.setFilters(new InputFilter[] { new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start,
int end, Spanned dest, int dstart, int dend) {
return source.length() < 1 ? dest.subSequence(dstart, dend)
: "";
}
} });
mEdit.setCursorVisible(false);
mEdit.setFocusableInTouchMode(false);
mEdit.clearFocus();
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android 之 设置EditText最大可输入字符
Android中EditText的输入字数限制
【转】android editText 输入字数限制
android中EditText文本监听的方法:addTextChangedListene...
onTextChanged参数解释及实现EditText字数监听 – PICKSOMETHING
RxJava 和 RxAndroid 四(RxBinding的使用)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服