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

时间:2010-12-01 12:15:46

标签: android keyboard culture

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

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

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

您可以使用(ROCK, ROCK) -> "Rock cannot defeat Rock. Draw." (ROCK, PAPER) -> "Paper covers Rock. Computer wins." ... flagForceAscii。该标志位于IME选项上。所以在XML中你可以把这个属性放在EditText中, EditorInfo.IME_FLAG_FORCE_ASCII

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

答案 1 :(得分:1)

仅适用于英文字符:

let modalBody = modalDefaults.modalBody;
for (let [key, value] of Object.entries(modalBody)) {
    if (/paragraph(\d)/.test(key)) {
        $('.row').append($(document.createElement('h1')).text(value.title));
        $('.row').append($(document.createElement('p')).text(value.body));
    }
}

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

dataType: 'jsonp',  //use jsonp data type in order to perform cross domain ajax
  crossDomain: true,

答案 2 :(得分:0)

您可能应该过滤输入。强制使用英文键盘不会强制用户只使用英文字母。用户仍然可以长按字符或使用非英文硬件键盘。

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

答案 3 :(得分:0)

可能的破解方法是使用 EditText 的 keytool error: java.lang.Exception: Keystore file does not exist: ... ,例如 inputType。 这会强制键盘仅支持英文字符和数字,但不利的一面是它还会禁用键盘上的麦克风。

无论如何,这可以满足您的要求。