1

一連の数字の入力に使用するカスタム EditText があります。クラスのコンストラクターで DigitsKeyListener (getInputType() = 2) を設定しました。

これは、Galaxy S (4.0) で「正しいこと」を行います。ビューがフォーカスを得たときに表示されるキーボードには、数字、「スペース」、ピリオド、カンマ、ダッシュ、バックスペース、および「完了」しかありません。

ただし、古い 2.2 デバイスでは、表示されるキーボードには文字とはるかに幅広い記号が含まれていますが、いずれも必要ありません。

オンラインで次のような例を見つけました。

    setRawInputType(Configuration.KEYBOARD_12KEY);

初期化の終わりに。その値は「3」です。これを行うと、2 つの電話の状況が逆になります。Galaxy S のキーボードには (電話のように、各数字の隣に) 文字が表示されるようになりましたが、2.2 デバイスのキーボードは私が求めているもの (つまり、基本的に電卓) です。

バージョン間で機能する「電卓」キーボードを取得するための単一の統一された方法はありますか、それとも SDK バージョン <= X とバージョン > X に対して別のことを行う必要がある状況ですか?

もしそうなら、「X」の値はどうあるべきですか? これは、特定のメジャー リリースで変更されたものですか?

4

1 に答える 1

5

inputType属性をに設定する"number"か、同等のランタイム コールを実行する必要があります。

于 2012-06-01T20:58:40.107 に答える