在Android应用程序

时间:2016-02-18 00:11:15

标签: android android-edittext ime

我在Android应用程序中有一个带有一堆edittext输入的布局。

某些输入要求用户以俄语输入数据。 最后一个字段是电子邮件字段。电子邮件可以是英语(99%),但也可以包含国际信件。因此,在焦点上的输入字段上将键盘切换为英语将非常方便(能够切换到另一种语言)。

我试图强制使用英语,然后使用.post删除此限制:

emailEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                emailEdit.setImeOptions(EditorInfo.IME_FLAG_FORCE_ASCII);
            }
            emailEdit.post(new Runnable() {
                @Override
                public void run() {
                    emailEdit.setImeOptions(EditorInfo.IME_ACTION_DONE);
                }
            });
        }
    }
});

但是这段代码只是强制键盘只能用英语切换到另一种语言。

有没有办法将inputtext软键盘切换到英文而没有“仅限英语”的限制?

1 个答案:

答案 0 :(得分:1)

不,尤其是并非所有键盘应用都可以。大多数键盘都维护着自己的输入语言 - 这不是Android操作系统的概念。所以它无法影响它。并且可以通过不同的键盘以奇怪的方式解释该标志。大多数人会忽视它。有些人会将语言设置为英语。其他人会执行奇怪的翻译,例如将重音字符更改为基本字符。应用程序对Android上的键盘控制非常有限。