3

ユーザーがアプリで定義された文字セットから文字を入力できるようにするカスタムビューがあります。これを行うには、私が理解しているように、入力メソッドサービスを作成する必要があります。ユーザーはそれをインストールするだけでなく、[設定]> [言語とキーボード]でIMEを有効にしてから、ビューで使用するカスタムIMEを選択する必要があります。

これは本当にクレイジーに思えます。このIMEを1つのアプリケーションの1つのビューにのみ使用したいと思います。システム全体で利用できるようにしたり、ユーザーにグローバル設定の変更を強制したりしたくありません。

私が見ることができる唯一の選択肢は、独自のアプリ内カスタムビューを定義し、ビューがフォーカスを取得したときにIME(おそらくフルスクリーンビュー)をシミュレートすることです。これ以上良いものはありませんか?

4

1 に答える 1

2

IMEはそのようなタスクのために考案されたものではないと思います。彼らのコンセプトは、標準化された方法でユーザー入力を可能にし、さまざまなベンダーの複数のアプリケーションで使用できるようにすることです。

私の戦略はあなたが考えているものと似ています:

  • ソフトキーボードが表示されないようにします。
  • メニューボタンのキーを押すのを傍受して、代わりに自分のものを表示します。
  • カスタムレイアウトを追加します(おそらく、GridViewまたは下部重力のあるTableView内部)RelativeLayout
  • を使用するOnItemClickListener
  • KeyEvent必要なをルートに送信しますView。文字が発明された場合KeyCodes、ASCII文字に関連する必要はありません。コードをインターセプトして自由に使用できます。

申し訳ありませんが、ご質問のとおりオプションを提供することはできませんが、この代替手段は、まったく新しいIMEを作成するよりもはるかに手間がかかるようには見えません。

編集android.inputmethodservice.KeyboardView:関連する質問を読んだら、ホイールを再発明する代わりに使用するのが理にかなっていGridViewます。

于 2011-05-04T22:01:10.423 に答える