2
A
回答
1
解決方案:
您需要在您的EditText
適用InputFilter。
例子:在您EditText
etNonCyrillic = (EditText) findViewById(R.id.etNonCyrillic);
etNonCyrillic .setFilters(new InputFilter[]{cyrillicFilter});
實施cyrillicFilter
設置過濾器:
public static InputFilter cyrillicFilter = 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 (!isCyrillicCharacter(c))
{
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;
}
}
}
@SuppressLint("NewApi")
private boolean isCyrillicCharacter(char c)
{
boolean isPriorToKitkat = android.os.Build.VERSION.SDK_INT<19;
UnicodeBlock block = UnicodeBlock.of(c);
boolean isCyrillicCharacter = (block.equals(UnicodeBlock.CYRILLIC) || block.equals(UnicodeBlock.CYRILLIC_SUPPLEMENTARY) || (isPriorToKitkat?false:(block.equals(UnicodeBlock.CYRILLIC_EXTENDED_A) || block.equals(UnicodeBlock.CYRILLIC_EXTENDED_B))));
return isCyrillicCharacter;
}
};
相關問題
- 1. 西里爾文HelpProvider
- 2. 如何解碼西里爾文的bson?
- 3. 如何獲得西里爾文的答覆文本
- 4. 如何將基於西里爾文的文本添加到mysql?
- 5. QT - 如何設置文件名編碼到西里爾文
- 6. 如何在Wordpress中正確處理西里爾文編碼?
- 7. 如何轉換成西里爾文
- 8. 檢查字符串是拉丁字母還是西里爾文
- 9. 西里爾文字母爲「???」 - php
- 10. 用西里爾名字保存文件
- 11. CounterPoint 8.3.9和西里爾文字體
- 12. java西里爾文字符識別API
- 13. $ _GET使用西里爾文字
- 14. 如何在Java中檢測字符串是否包含西裏爾字母?
- 15. mkdir utf-8西里爾文
- 16. 西里爾文搜索
- 17. 如何在Python/Django中將西裏爾字母寫入文件
- 18. 如何從文檔中獲取西里爾字符串
- 19. Spreadsheet - 閱讀西里爾文字符的編碼問題
- 20. 西里爾字符的csv文件編碼
- 21. 如何將俄文字符串轉換爲西裏爾字母?
- 22. 爲亞洲雙字節/西里爾字符集檢測ASCII碼?
- 23. MS SQL中的西里爾文數據
- 24. 如何從文本編輯對象中檢測焦點丟失?
- 25. 輸出到包含西里爾文內容的文本文件
- 26. 如何恢復正確的字符編碼的西里爾文短語「ÂòòîðîíÄÄîæäÿ」?
- 27. 如何檢測的textarea或輸入類型=「文本」的編輯?
- 28. Android如何在exif文件中添加西里爾文符號
- 29. 如何編碼URL的西里爾文字符然後解碼它們?
- 30. 如何使用Delphi檢測文本文件的字符編碼?
你可以檢查鍵盤的語言 – Blackbelt
在這裏我必須把它?在textWatcher裏面或者在哪裏? –
請詳細解釋你的用例。根據您的使用情況,您可以使用[this](http://stackoverflow.com/a/30631069/1529129)或者有一個正則表達式,可以使用文本查看器進行檢查。 –