如何将自定义 InputMethodService 添加到 Activity?

How to add custom InputMethodService to Activity?

我决定为我的应用程序创建一个自定义键盘。我知道这不是最好的主意,因为它损害了用户友好性,这就是为什么我将在首选项中将其设为可选。

在 class public class CustomKeyboard extends InputMethodService implements KeyboardView.OnKeyboardActionListener 中完成所有操作之后。我很难将其添加为 softInputMethod。我尝试使用 InputMethodManager 但在转换时我得到了不兼容的类型。

我发现我可以获得它 w/o 服务,但非常不推荐,我需要一个全新的实现。

理想情况下,我会将其用于应用程序中的 EditText 命令行。所以直接绑定到它也可以完成这项工作。

隐藏系统输入法后,如何将此输入法设置为默认输入法?

谢谢。



P.S。如果有一个明显的简单方法可以做到这一点,我很抱歉,但我刚刚过渡到 Android,我还在学习。

在要更改输入法的文本字段上使用 android:inputMethod。参见 https://developer.android.com/reference/android/widget/TextView.html#attr_android:inputMethod

您不能为整个设备设置默认输入法,但您可以在您的应用中逐个字段地覆盖它。为您的 Activity 或应用程序的主题添加默认输入法应覆盖您应用中所有文本视图的默认输入法。

我认为您可以制作一个自定义视图来防止弹出默认键盘(默认的 InputMethodService,例如 SamsungKeyboard)并显示您自己的。您放置所有键并与 onTouchListener 交互。

或者,如果您正在尝试制作自己的键盘应用程序,例如 SwiftKey,您可能需要阅读以下内容:(https://developer.android.com/guide/topics/text/creating-input-method.html)