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

时间:2016-07-04 12:51:26

标签: android android-activity android-service android-input-method window-soft-input-mode

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

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

我发现我可以通过服务得到它,但是它是非常不受推荐的,我需要一个全新的实现。

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

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

感谢。



附:如果有一个明显的简单方法,我很抱歉,但我刚刚过渡到Android,我仍在学习。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

  

如何将此输入服务设为默认输入服务?

你没有。输入方法适用于整个设备,而不是单个EditText。因此,用户需要选择使用您的输入法。引用the documentation

  

安装所需的IME后,用户可以从系统设置中选择要使用的IME,并在整个系统中使用它;一次只能启用一个IME。

答案 2 :(得分:0)

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

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