2011-01-23 22 views
1

私は言語学習アプリを書いています、現在はドイツ語< - >ロシア語のみです。EditTextからIMEに情報を送信

EditTextsには、ユーザーが1つまたは他の言語でテキストを入力することが想定されています。これらの言語は異なるアルファベットを使用するため、アプリはInputMethodServiceを実装し、ラテン文字とキリル文字のキーボードレイアウトを提供することで、独自のソフトキーボードを使用します。言語が予期される各EditTextフィールドについて知られている。

私が望むのは、例えば、EditTextフィールドにロシア語を想定するフィールドがある場合は、キリル文字のキーボードレイアウトが表示されます。選択すると、EditTextはIMEに一定の定数を渡す必要があります。IMEは、ラテン文字またはキリル文字モードで表示するかどうかを決定するために使用できます。

理想的には、EditTextのカスタムInputTypeを指定するのが理想的ですが、それは可能ではないようですね。ここで正しいアプローチは何ですか?

答えて

1

あなたの考えは悪くはありません。スイッチブロック内のInputTypeのIMEコードチェックで、InputTypeが一致しない場合、デフォルトのキーボードレイアウトが表示されます。

はまた、アクティブな入力方法をチェックしてくださいActivityonCreate()方法でロジックを提供し、その情報をinputTypeあなたEditTextが持つべきかを選択することができます。

+0

感謝、ありがとう。つまり、私は標準のInputTypeリテラルを意図した使い方からそらしたくないので、カスタムInputTypeを定義して使用する方法を知りませんでした。 EditTextからIMEへの通信はわかりませんでした。今私は働いているprivateImeOptionを使用していますが、特に美しいとは思われません... – ferdystschenko

関連する問題