如何在Android EditText中强制英文键盘

cod*_*ber 5 keyboard culture android

我知道如何强制数字,文本等。但是如果我的数据库字段只能接受英语字符,我是否有标志或IME选项可以强迫EditText只接受某些语言,例如英语?当然我可以检查输入错误并通知用户,但这并不完全是用户友好的...

也可以在EditText上实现我自己的过滤器,但是我不确定这是否会迫使键盘布局本身使用我需要的语言。

任何的想法 ?

and*_*guy 15

您可以使用flagForceAsciiEditorInfo.IME_FLAG_FORCE_ASCII。该标志位于 IME 选项上。所以在 XML 中你可以把这个属性放在 EditText 中, imeOptions="flagForceAscii"

当然,这只会影响键盘的初始状态。 https://developer.android.com/reference/android/view/inputmethod/EditorInfo.html#IME_FLAG_FORCE_ASCII


Sur*_*mar 7

仅对于英文字符:

android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Run Code Online (Sandbox Code Playgroud)

使用的符号,您已经定义了数字字符串:

android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ !@#$%^*?"
Run Code Online (Sandbox Code Playgroud)


Juh*_*ani 1

无论如何,您可能应该过滤输入。强制英文键盘并不强制用户仅使用英文字母。用户仍然可以长按一个字符或使用非英语硬件键盘。

您可以监听文本更改事件并拒绝数据库此时不接受的所有字符。