【问题标题】:How to programmatically switch between the phone's keyboards如何以编程方式在手机的键盘之间切换
【发布时间】:2015-04-21 21:01:31
【问题描述】:

总结:

尝试开发一个应用程序,该应用程序可以通过代码中的 if-else 语句在手机上安装的键盘之间切换。是否可以在不root设备的情况下执行此操作?

请注意:

我的卑微研究只导致能够在有根设备上执行此操作,否则这是不可能的,应该由用户手动完成 - 但这是相对较旧的信息(从 2011 年开始),所以现在可能吗?

背景故事:

目前,(在教程的帮助下),我们制作了一个自定义键盘的应用程序,我们希望让应用程序(代表用户)以编程方式在此自定义键盘和手机的默认键盘之间切换.

我们是如何做到的:

在其中一个实现 KeyboardView 的类中,有这段代码:

public View onCreateInputView() {
    KeyboardView kv = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null);
    Keyboard keyboard = new Keyboard(this, R.xml.qwerty);
    kv.setKeyboard(keyboard);
    kv.setOnKeyboardActionListener(this);
    return kv;
} 

似乎这条语句:kv.setKeyboard(keyboard); 可以改变键盘,所以如果我们添加类似的语句但改变它的参数以引用默认键盘,那么可以有效地进行切换? 如果是,那么如何引用默认键盘?

【问题讨论】:

    标签: android keyboard


    【解决方案1】:

    我认为您不能以编程方式更改切换键盘。但是您可以使用键盘选择器。

    InputMethodManager ime=(InputMethodManager)getActivity().getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                    if(ime!=null) {
                       ime.showInputMethodPicker();
                    }
    

    P.S:这只会显示用户在设置中设置的活动键盘

    【讨论】:

    • 谢谢,虽然它不像我们想要的那样自动,但我想这是最接近的方式。
    • Shaz 有没有办法以编程方式启用键盘,即使在有根设备上也是如此?另外@Nitto 您是否找到了一种更自动化的方式来执行此操作,或者 inputMethodPicker 最终是您的最佳选择?
    猜你喜欢
    • 1970-01-01
    • 2018-02-07
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多