如何在android中的EditText中只輸入字母?如何創建EditText只接受android中的字母?
回答
EditText state = (EditText) findViewById(R.id.txtState);
Pattern ps = Pattern.compile("^[a-zA-Z ]+$");
Matcher ms = ps.matcher(state.getText().toString());
boolean bs = ms.matches();
if (bs == false) {
if (ErrorMessage.contains("invalid"))
ErrorMessage = ErrorMessage + "state,";
else
ErrorMessage = ErrorMessage + "invalid state,";
}
edittext.setFilters(new InputFilter[] {
new InputFilter() {
public CharSequence filter(CharSequence src, int start,
int end, Spanned dst, int dstart, int dend) {
if(src.equals("")){ // for backspace
return src;
}
if(src.toString().matches("[a-zA-Z ]+")){
return src;
}
return "";
}
}
});
請測試徹底,但!
的工作方式就像是魔法...... thanx – Richa 2013-07-04 05:13:46
它對我沒有任何作用。我做了同樣的事情,但是當我在EditText中輸入數字或特殊字符時,它將刪除先前輸入的所有字符。爲什麼會這樣呢? – 2015-11-07 05:59:42
@Nayana_Das這可能是因爲這一行'return「」;'。用一些沒有無效字符的文本替換該行,而不是返回空字符串。 – 2016-11-14 09:22:11
通過XML,你可以爲類型很容易地做到下面的XML(EDITTEXT)代碼...
android:digits="abcdefghijklmnopqrstuvwxyz"
隻字也能接受...
添加這符合你的EditText標籤。
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
你的EditText標籤應該是這樣的:
<EditText
android:id="@+id/editText1"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
感謝它的完美工作,無需驗證條件...... !!!! – 2014-05-28 09:30:32
非拉丁字符呢? – 2015-04-15 09:42:29
無法輸入空格。如何讓它在單個空間 – Ravi 2015-06-04 12:28:41
如果有人仍想這一點,Java regex for support Unicode?是一個很好的一個。這是爲了當你只想要字母(不管是什麼編碼 - japaneese,瑞典語)是一個EditText。後來,你可以使用Matcher
和Pattern.compile()
將代碼的EditText XML文件檢查,
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
對於空間,你可以在數字加一個空格。如果你需要一個像點的任何特殊字符,也逗號,你可以到這個名單
機器人:位=「abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ」
對於那些誰希望自己的EDITTEXT應該只接受字母和空格(既不數字或任何特殊字符),那麼可以使用這個InputFilter
。 這裏我創建了一個名爲getEditTextFilter()
的方法,並在其中寫入了InputFilter。
public static InputFilter getEditTextFilter() {
return new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
boolean keepOriginal = true;
StringBuilder sb = new StringBuilder(end - start);
for (int i = start; i < end; i++) {
char c = source.charAt(i);
if (isCharAllowed(c)) // put your condition here
sb.append(c);
else
keepOriginal = false;
}
if (keepOriginal)
return null;
else {
if (source instanceof Spanned) {
SpannableString sp = new SpannableString(sb);
TextUtils.copySpansFrom((Spanned) source, start, sb.length(), null, sp, 0);
return sp;
} else {
return sb;
}
}
}
private boolean isCharAllowed(char c) {
Pattern ps = Pattern.compile("^[a-zA-Z ]+$");
Matcher ms = ps.matcher(String.valueOf(c));
return ms.matches();
}
};
}
裝上此輸入過濾到您的EDITTEXT發現它後,像這樣:
mEditText.setFilters(new InputFilter[]{getEditTextFilter()});
原來歸功於@UMAR誰給了使用正則表達式和@KamilSeweryn
最佳答案。不知道爲什麼沒有更多upvotes。 android:digits =「abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ」是最糟糕的解決方案,導致android:imeOption無法使用它。 – 2017-05-04 13:08:36
@wonsuc什麼? – Alex78191 2017-10-08 18:33:13
謝謝我從最近5天以來解決了這個問題現在解決.. – 2018-02-05 11:19:41
驗證的想法只允許EditText中的字母android:
InputFilter letterFilter = new InputFilter() {
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
String filtered = "";
for (int i = start; i < end; i++) {
char character = source.charAt(i);
if (!Character.isWhitespace(character)&&Character.isLetter(character)) {
filtered += character;
}
}
return filtered;
}
};
editText.setFilters(new InputFilter[]{letterFilter});
- 1. 如何創建只接受數字的文本框和只接受WPF中的字母的文本框?
- 2. 製作一個EditText字段只接受Android中的字母和空格
- 3. android EditText隻字母驗證
- 4. android - 如何限制edittext只接受阿拉伯語|波斯語字母
- 5. 如何創建只接受字母數字字符的正則表達式?
- 6. 是否可以設置EditText只接受android中的unicode字符?
- 7. Grails:我如何讓g:textfield只接受數字或只接受字母?
- 8. 如何創建只接受其他字段的字段?
- 9. 讓UITextField只接受Swift中的小字母字母?
- 10. 只接受使用preg_match的UTF8字母
- 11. 的JTextField只接受字母和空格
- 12. 如何讓textfield只接受LWUIT中的字母?
- 13. Edittext如何只能接受小數點後的兩個數字
- 14. jQuery驗證插件:只接受字母?
- 15. 創建編輯文本只接受或只能從az輸入字母字符android
- 16. 如何讓文本框只接受字母字符?
- 17. 如何使文本框只接受字母字符
- 18. 如何使文本框數組只接受特定的字母?
- 19. 限制EditText僅接受Android中的Url
- 20. 只接受輸入中的數字和字母
- 21. Android的EditText中的字母間距
- 22. 如何驗證Android edittext接受字符串和整數
- 23. 如何強制EditTextPreference接受只有四個字母或更多?
- 24. Android:排序字母EditText
- 25. 如何限制android編輯文本只接受字母和長度
- 26. 如何用android中的隨機字母創建字典單詞?
- 27. 幫助需要示例android正則表達式在EditText中只接受數字!
- 28. 如何在圓形狀中添加EditText並只接受1個數字
- 29. 如何在Android中創建接受參數的Runnable?
- 30. WPF如何創建字母
使用正則表達式。 – UMAR 2010-03-22 11:55:04
好主意..它幫助我制定屬於自己的邏輯......感謝:) – Noman 2012-11-27 14:24:41
太空的情況 – 2017-08-01 07:30:36