2017-07-20 7 views
7

InputMethodManagerは、アプリケーションがシステムキーボードとやりとりするために使用できるサービスです。 EditTextのような編集者は、これを使って間接的にキーボードに変更を通知します(たとえば、updateSelection)。カスタムインアプリキーボードでAndroid InputMethodManagerを使用できますか?

私は私の問題はこれだけで、システムのキーボードのためのようだということであるInputMethodManager

このような
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); 

への参照を取得することができます。 custom in-app keyboardInputMethodManagerを使用できますか?それは単なる孤立したアプリの場合は気にしないだろうが、私は多くのアプリで使用されるライブラリにカスタムキーボードを含めています。エディターがキーボードと通信するための標準的な方法が必要です。

独自のインプットメソッドマネージャーを作成する必要がありますか、カスタムアプリ内キーボードに標準InputMethodManager標準を使用する方法がありますか?ここで

アップデートは標準のものを使用する方法がない場合、私は私自身のカスタム入力メソッドマネージャを実装する方法について、いくつかの手がかりです。

+0

私は自分のカスタム入力メソッドマネージャを作成する方法を決定しました。私は 'InputMethodManager'システムを使用することは可能ではないと考えています。なぜなら、それは電話機にセキュリティ問題があるからです。しかし、アイデアを完全に放棄する前に、私は賞金を加えました。 – Suragch

答えて

1

あなたはあなたを実装する必要があります。

InputMethodServiceは、InputMethodの標準実装を提供します。この実装では、最終実装が派生してカスタマイズできます。入力メソッドの作成の基本については、基本クラスAbstractInputMethodServiceとInputMethodインタフェースを参照してください。

1

いいえ、できません。 InputMethodServiceから継承すると、他のアプリで使用できるようになります。アプリ内キーボードを作成するには1つの方法しかありません。レイアウトには簡単なViewが使用されています。この例では、 custom in-app keyboardInputMethodManagerを使用してEditTextに接続します。

+0

申し訳ありません、初めて私は間違っていて、あなたの質問を理解できませんでした。私は私の答えを更新しました。 – fisher3421

+0

リンク先の例が私の例です。 'EditText'に接続するために' InputMethodManager'を使用しません。ただそれを直接接続します。しかし、私は 'InputMethodManager'を使いたいと思っていました。 – Suragch

+0

@Suragch InputMethodManagerを継承せずにキーボードにアクセスできない – fisher3421

関連する問題