当前位置: 首页 > 面试题库 >

以编程方式更改键盘输入语言

章锦
2023-03-14
问题内容

我正在开发一个应用程序,在该应用程序中,我需要允许用户根据请求或默认情况下更改默认键盘中显示的输入键,例如,我可能会提示用户开始选择默认语言,然后,每当使用默认键盘时,应用程序始终会以所选语言显示键盘的按键,

我知道这是可能的,因为在默认键盘应用程序中,当选择了多种输入法时,然后长按空格键可以在运行时更改输入法,如果可能的话,我的要求也是可能的…

我不想提示输入默认键盘,如下所示:

InputMethodManager imeManager = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
imeManager.showInputMethodPicker();

我不想更改语言环境并一直重新启动活动,例如:

Resources res = getBaseContext().getResources();
// Change locale settings in the app.
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.locale = new Locale("ru".toLowerCase());
res.updateConfiguration(conf, dm);
Log.i("inside onStart","after ever");   
setContentView(R.layout.activity_main);

我只想用所需的语言显示键盘输入。


问题答案:

在这里进行了一些研究之后,找到了答案,首先,您需要创建一个自定义键盘视图,该视图扩展了keyboardView,并在其中创建静态键值变量,例如

static final int KEYCODE_LANGUAGE_SWITCH_ENG = -102;
static final int KEYCODE_LANGUAGE_SWITCH_URDU = -103;

之后,在实现了inputMethodService的IME类中,在onInitializeInterface覆盖函数内创建键盘。喜欢

mSymbolsKeyboard = new Keyboard(this, R.xml.qwerty2);
mEngQwertyKeyboard = new Keyboard(this, R.xml.eng_qwerty);

之后,将这些最终的静态键添加到onKey覆盖功能中作为切换用例,并在这种情况下相应地设置键盘:

setKeyboard(mEngQwertyKeyboard);


 类似资料:
  • 问题内容: 我发现了只在Android N设备上才能复制的真正奇怪的错误。 在浏览我的应用程序时,可以更改语言。这是更改它的代码。 该代码在我的巡回活动(带电话)中效果很好,但是在接下来的所有活动中,所有String资源都是错误的。屏幕旋转将其修复。我该怎么办?我应该以其他方式更改Android N的语言环境还是仅仅是系统错误? PS这是我发现的。第一次启动MainActivity时(在​​我的旅

  • 我使用下面的hack以编程方式更改homeAsupIndicator。 但这在大多数新手机(HTC One、Galaxy S3等)上都不起作用。是否有一种方法可以跨设备统一更改。我只需要在主屏幕上更改它。其他屏幕将具有默认屏幕。因此无法使用样式。xml

  • 我希望javafx标签自动更新为正在输入到文本字段中的内容,目前我只有在单击回车键时才更改它。我正在使用秋千和javafx的混合。 这可能吗? 谢谢

  • 你知道有什么解决办法吗?如果可能的话,我不想使用第三方库。

  • 我已经读过一些关于颜色的线程,但所有这些线程都必须通过style.xml进行设置。 现在我用这个来确定颜色。 是否可以不使用XML,例如使用代码来更改SwitchCompat/Checkbox的颜色?

  • 问题内容: 首先,我已经看到了该线程。我尝试了那里给出的可接受的方法。 我的应用程序中有两个屏幕。 第一个有2个EditText,一个是用户名,另一个是密码 第二个有一个ListView和一个EditText-过滤listView 在我的第一个屏幕中,我希望用户名EditText专注于启动,并且Keyboard应该可见。这是我的实现(通过删除不必要的/不相关的代码进行简化)。 app_login.