3

いくつかの異なるキーボードを起動する必要があります。CtrlキーとAltキーを備えた「標準」キーボード。多分カーソルパッド。等々。

KeyboardXMLリソースでキーボードを定義できるクラスを見つけました。KeyboardViewクラスにメソッドがあることがわかりました...そしてこれまでのところ、インスタンスsetKeyboardをとる他のクラスは見つかりませんでした。Keyboard

どのように使用するのKeyboardViewですか?アクティビティのXMLに1つ追加してみました。findViewById実行時に;でそれを見つける それから呼び出しsetKeyboardます...しかし、これはすべて私のレイアウトを台無しにし、特別なキーボードを表示しませんでした。

4

3 に答える 3

3

これは非常に実行可能であることが判明し、私の最初の問題はおそらく、一般的な Android の初心者 (これが私の最初の Android アプリです) と関係があり、KeyboardView ではありませんでした。特に、単純なバイナリ プロパティである可視性に慣れています。

とにかく:

  1. KeyboardViewを使用して XML ファイルで を宣言しますandroid:visibility="gone"
  2. ビューを表示する前に、呼び出しsetKeyboard()てキーボードを接続します。KeyboardViewはキーボードからサイズを取得するため、これは重要です。
  3. 生のキー イベントを取得するには、 を呼び出しますKeyboardView.setOnKeyboardActionListener()Dialogこの機能をmainにリファクタリングした後ViewOnKeyboardActionListener機能をスタンドアロン クラスに配置しましたが、これは必須ではありません。
  4. 私は電話しますkeyboardView.setEnabled(true);これは必要ないように思われますが、どのような状況で問題になるかは (まだ) わかりません。おそらくあなたが電話した場合にのみsetEnabled(false)
  5. I call keyboardView.setPreviewEnabled(true);- これは、ユーザーがキーボードのすぐ上にある入力 biox から視覚的なフィードバックを得られない場合に特に便利です。
  6. 次に、キーボードをすべて設定して、 を呼び出しますkeyboardView.setVisibility(VISIBLE);

必要に応じてキーボードを非表示にするには、 を呼び出すだけkeyboardView.setVisibility(GONE);です。キーボードを変更するには (シフト キーやシンボル キーボードの循環キーのように、setKeyboardもう一度呼び出すだけです。私は a を使用しMap<<Integer, Keyboard>て遅延作成パターンを実装します。プログラムが長時間実行すると、キーボードはあまり使用されなくなります。

于 2010-10-25T18:18:27.917 に答える
0

KeyboardKeyboardView代替入力方式エンジン (IME) を作成するためのものです。Android マーケットから Swype、Graffiti、その他のものをインストールできるのと同じように、ユーザーはこれらを選択できます。

開発者はそのような IME を作成できますが、ユーザーに強制することはできません。

于 2010-10-15T00:17:44.573 に答える
0

editText ビューでinputType属性を使用すると、さまざまなシステム キーボード (電話、電子メールなど) を選択するのに役立ちます。また、SDK に付属の APIDemos アプリケーションには、アプリ専用の強制カスタム キーボードを実装する方法の例があります。

于 2010-10-15T00:27:07.457 に答える