2010-12-02 44 views
0

私は主にハードウェアのキーボード入力によって駆動されるAndroidアプリを書いてきました。私はソフトキーボードサポートを追加中ですが、私はまだそこにはありません。しかし、私は逃げます...Android KeyEvent処理 - KeyCodeまたはGetUnicodeChar?

元私はKeyEventクラスのenumsに対して、私のOnKey関数に渡された整数のkeyCode値をチェックしていました。単純です...

しかし、>記号を生成するキーの組み合わせをユーザーが押したかどうかを知る必要があります。したがって、ALTが押され、X keyCodeが渡されたかどうかを確認しましたが、異なる電話機の異なるキーが>シンボルを生成することが判明しました。

代わりに、KeyEventのgetUnicodeCharメソッドの値を、Unicode文字の既知の値と照合しています。

私の問題は解決されましたが、文字検査を受け入れる方法はありますか?ほとんどの人はALT記号を必要としませんか、デバイスの標準であるソフトウェアキーボードを使用する人はほとんどいますか? Unicodeの文字列挙型のテーブルはありません(私が知っている、とにかく)ので、コードも少し醜いものになります。ちょっと興味があるんだけど!

答えて

0

どのシンボル/代替キーが押されたかを検出する唯一の方法は、ユニコード文字を見ることです。

多くの場合、人々は主キーだけに興味があるので、KeyCodeで十分です。

特定のIME(ソフトキーボード)に依存することはできません。また、IMEを介して入力されたテキストは、テキストウィジェットによってInputConnectionを介してアクセスされるため、ハードウェアキーボードのようにKeyEventsを使用しないことがよくあります。

関連する問題