您的位置:首页 > 其它

EditText内容输入

2016-09-29 16:00 363 查看
         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();
}
}
});



源码

没有一声呼叫,没有一滴眼泪,没有一丝情感,没有一线希望,没有一点欲求,没有

动,没有静,只有一种向下沉落的感觉,沉落……沉落……向着那无底的幽暗之中沉

落。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息