【问题标题】:How to add custom InputMethodService to Activity?如何将自定义 InputMethodService 添加到 Activity?
【发布时间】:2016-11-06 05:12:02
【问题描述】:

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

public class CustomKeyboard extends InputMethodService implements KeyboardView.OnKeyboardActionListener 的课堂上完成这一切之后。我很难将其添加为softInputMethod。我尝试使用InputMethodManager,但在转换它时我得到了不兼容的类型。

我发现我可以在不使用服务的情况下获得它,但它非常不推荐,我需要一个全新的实现。

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

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

谢谢。



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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • @m0skit0 绝对有效,你做错了什么。随时将您的代码作为问题发布。
    • 首先,无论我把它放在哪里,android:inputMethod 都显示为已弃用。如果我将它分配给清单中的应用程序或活动标记中的 InputMethodService 子类名称,它将被忽略(相对名称和规范名称)。如果我把它放在视图中,它会在膨胀视图时抛出 ClassNotFoundException。
    • 如果您需要帮助,请提出问题并包含所有相关代码。不会在 cmets 中调试
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 2012-08-28
      • 2014-06-26
      • 2020-07-31
      • 2021-12-10
      • 2017-09-08
      • 2021-06-28
      相关资源
      最近更新 更多