我有一个EditText,因为我将这个String存储在SQLlite数据库中,所以我不想包含任何特殊字符。现在我使用:
<item name="android:digits">abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789</item>
这适用于英语。但是,当我将键盘切换为其他语言(日语,俄语,北印度语等)时,我无法输入任何内容。什么是正确的方法?
或者:
我正在使用ContentProvider访问我的SQLite数据库。所以我有读写数据库的方法
context.getContentResolver().insert(uri, values);
context.getContentResolver().delete(uri, values);
context.getContentResolver().query(uri, values); //for a special case, but only uses id=? in the query
context.getContentResolver().update(uri, values);
那么我是否需要转义特殊字符?
最佳答案
//try to add this fillter
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter() {
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
if (end > start) {
String destTxt = dest.toString();
String resultingTxt = destTxt.substring(0, dstart) + source.subSequence(start, end) + destTxt.substring(dend);
if (!resultingTxt.matches("[a-zA-Z0-9?]*")) {
if (source instanceof Spanned) {
SpannableString sp = new SpannableString("");
return sp;
} else {
return "";
}
}
}
return null;
}
};
edtiText.setFilters(filters);
关于android - EditText中的多种语言,不带特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21542732/