Edittext内容输入限制:只允许输入英文字符与数字。
一、xml限制内容输入
<EditText
android:id="@+id/et_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ"
android:hint="xml限制"
android:inputType="number" />
二、设置KeyListener
et2.setKeyListener(new DigitsKeyListener() {
@Override
public int getInputType() {
return InputType.TYPE_TEXT_VARIATION_PASSWORD;
}
@Override
protected char[] getAcceptedChars() {
char[] data = getString(R.string.login_only_can_input).toCharArray();
return data;
}
});
login_only_can_input
<!--限制只输入英文字符与数字-->
<string name="login_only_can_input">qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM1234567890</string>
三、正则验证
/**
* 正则表达式检测内容输入
*
* @param view
*/
public void testRegular(View view) {
String str = et3.getText().toString().trim();
String regEx = "[a-zA-z0-9]+";
// Pattern pattern = Pattern.compile(regEx);
if (str.matches(regEx)) {
return;
} else {
Toast.makeText(MainActivity.this, "输入内容只允许字符与数字!", Toast.LENGTH_SHORT).show();
}
}
四、TextWatcher监察
et4.addTextChangedListener(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) {
try {
String str = s.toString();
String temp = str.substring(str.length() - 1, str.length());
char[] array = temp.toCharArray();
int charTemp = array[0];
if (charTemp > 48 && charTemp < 57) {//数字
} else if (charTemp > 65 && charTemp < 90) {//大写
} else if (charTemp > 97 && charTemp < 122) {//小写
} else {
s.delete(str.length() - 1, str.length());
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
没有一声呼叫,没有一滴眼泪,没有一丝情感,没有一线希望,没有一点欲求,没有
动,没有静,只有一种向下沉落的感觉,沉落……沉落……向着那无底的幽暗之中沉
落。