2

Я решил создать пользовательскую клавиатуру для своего приложения. Я знаю, что это не лучшая идея, так как это вредит удобству пользователя, поэтому я просто сделаю это необязательным в настройках.Как добавить пользовательский метод InputMethodService в действие?

После того, как все сделано в классе public class CustomKeyboard extends InputMethodService implements KeyboardView.OnKeyboardActionListener. Я стараюсь добавить его как softInputMethod. Я пробовал с InputMethodManager, но при выдаче я получаю несовместимые типы.

Я обнаружил, что могу получить его без Сервиса, но он очень не рекомендуется, и мне понадобится совершенно новая реализация.

В идеале я бы использовал его для командной строки EditText в приложении. Поэтому прямая привязка к ней также будет выполнять эту работу.

После скрытия метода ввода системы, как сделать эту службу ввода стандартной по умолчанию?

Спасибо.



P.S. Если есть очевидный простой способ сделать это, я сожалею, но я только что сделал переход на Android, и я все еще учился.

ответ

2

Использование android: inputMethod в текстовом поле, на которое вы хотите изменить способ ввода. См. https://developer.android.com/reference/android/widget/TextView.html#attr_android:inputMethod

Вы не можете установить метод ввода по умолчанию для всего устройства, но вы можете переопределить его в поле по полю в своем приложении. Добавление метода ввода по умолчанию для темы Activity или Application должно переопределить его для всех текстовых представлений в вашем приложении.

0

Как сделать эту услугу ввода стандартной по умолчанию?

У вас нет. Методы ввода предназначены для всего устройства, а не для одного EditText. Следовательно, пользователь должен выбрать способ ввода. Цитирование the documentation:

После установки желаемого редакторы IME, пользователь может выбрать один использовать из настроек системы, и использовать его по всей системе; за один раз может быть включен только один IME.

+0

Хорошо, тогда я могу сделать выбор внутри приложения, говорят в настройках? Или это возможно только через системные настройки? – user8

+0

@ user8: «тогда я могу сделать выбор внутри приложения, скажем, в настройках» - нет. «Или это возможно только через системные настройки?» -- да. – CommonsWare

+0

Итак, просто чтобы убедиться, что я понял. Помимо [хакерского пути] (http://www.fampennings.nl/maarten/android/09keyboard/index.htm), нет другой возможности добавить его как IME через приложение. Но я все равно могу выбрать его из системных настроек по умолчанию. Правильно? – user8

0

Я думаю, что вы можете просто создать пользовательский вид, который предотвращает по умолчанию клавиатуру (по умолчанию InputMethodService, например, SamsungKeyboard), и показывать свои собственные. Который вы размещаете все ключи и взаимодействуете с onTouchListener.

Или, если вы пытаетесь сделать свою собственную клавиатуру приложения, такие как SwiftKey, Вы можете прочитать это :(https://developer.android.com/guide/topics/text/creating-input-method.html)