在开发中很多时候我们都会用到EditText,对输入内容的实时监听也是不可或缺的。
在android中为我们提供了TextWatcher这个类,我们只要extends这个类然后etColler.addTextChangedListener(editclick);就可以实时监听了。
例:我们写一个文本框
<EditText
android:id="@+id/et_coller"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:hint="请输入"
/>
然后在activity:
private TextWatcher editclick = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
//一般我们都是在这个里面进行我们文本框的输入的判断,上面两个方法用到的很少
@Override
public void afterTextChanged(Editable s) {
String money = etColler.getText().toString();
Pattern p = Pattern.compile("[0-9]*");
Matcher m = p.matcher(money);
if (m.matches()) {
} else {
ToastUtil.toastCenter(BuyCuurseActivity.this, "请输入正确的缴费金额");
etColler.setText("");
}
}
};
在这里我判断的是EditText输入的是不是数字,用到了正则表达式。假如你要判断输入的是汉字p=Pattern.compile("[\u4e00-\u9fa5]");判断输入的是子母:p=Pattern.compile("[a-zA-Z]");
本文介绍了如何在Android应用中使用TextWatcher实时监听EditText输入内容,并通过正则表达式进行数字、汉字和字母的验证。示例代码展示了在afterTextChanged方法中进行输入判断并展示错误提示的方法。
1223

被折叠的 条评论
为什么被折叠?



