How to add custom InputMethodService to Activity?

我是研究僧i 提交于 2019-12-02 06:09:45

问题


I decided to create a custom keyboard for my application. I know that this is not the best idea, since it's hurting the user friendliness, that's why I will just make it optional in Preferences.

After having it all done in a class public class CustomKeyboard extends InputMethodService implements KeyboardView.OnKeyboardActionListener. I struggle to add it as a softInputMethod. I tried with the InputMethodManager but I get incompatible types when casting it.

I found that I can get it w/o the Service but it is highly unrecommended and I would need a whole new implementation.

Ideally, I would use it for the EditText command line in the app. So a direct binding to it would also do the job.

After hiding the system input method, how to make this input service the default one?

Thanks.



P.S. If there is an obvious easy way to do this, I am sorry, but I just made the transition to Android and I am still learning.


回答1:


Use android:inputMethod on the text field you want to change the input method on. See https://developer.android.com/reference/android/widget/TextView.html#attr_android:inputMethod

You cannot set a default input method for the entire device, but you can override it on a field by field basis in your app. Adding a default input method for your Activity or Application's theme should override it for all text views in your app.




回答2:


how to make this input service the default one?

You don't. Input methods are for the entire device, not a single EditText. Hence, the user needs to opt into using your input method. Quoting the documentation:

After installing the desired IMEs, a user can select which one to use from the system settings, and use it across the entire system; only one IME may be enabled at a time.




回答3:


I think you can just make a custom view that prevents default keyboard(the default InputMethodService such as SamsungKeyboard) popping up and show your own. Which you place all the keys and interact with onTouchListener.

Or if you are trying to make your own Keyboard Application such as SwiftKey, You might want to read this:(https://developer.android.com/guide/topics/text/creating-input-method.html)



来源:https://stackoverflow.com/questions/38185238/how-to-add-custom-inputmethodservice-to-activity

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!