2011-11-10 24 views
6

私は、クレジットカード番号を受け入れるフィールドの入力タイプを考案しようとしています。クレジットカード用の適切な入力タイプ

私はinputType = "number"を使用していましたが、ハードウェアキーボードを持つ人がスペースバーを押すことはできません。アクティビティの別のフィールドにジャンプします。

私が望むのであれば、数字のスペースを使用することができます。または、ハードウェアキーボードを使用しているユーザーがスペースを使用すると、クレジットカード番号はEditTextのままにしてください。

理想的には、私はいくつかのインターフェイスを実装して独自のカスタムinputTypeを持つことができますが、それは可能であるかどうかはわかりません。

  • ソフトキーボードの数字を表示しながら数字とスペースを許可することはできますか?
+0

です:のEditTextにimeOptionsは=「flagNoEnterAction」が、それでも - ハードウェアキーボードのスペースバーをヒットしたとき、それがジャンプ一見無作為なEditTextはアクティビティレイアウトをさらに下にします。 –

+0

["ハードキーを傍受するには、InputMethodService.onKeyDown()"](http://developer.android.com/resources/articles/creating-input-method.html)を上書きします。下の見出し「ハードキーイベントのインターセプト」から読んでください。役立つかもしれません? – Graeme

+0

傍受する方法が見つからない場合は、通常のTextViewを使用して数字キーボードを手動で開きます。 [これらのリソース](http://developer.android.com/resources/browser.html?tag=input)は、私がInputMethodsで作業していたときに本当に役に立ちました。 – Graeme

答えて

1

私はあなたのための決定的な答えを持っていないが、ここで私が拾ったいくつかのリソースは次のとおりです。

私は、この手がかりは「キャッチ」ハードキーの押下をすることが分かっ:「To intercept hard keys, override InputMethodService.onKeyDown()」。下の見出し「ハードキーイベントのインターセプト」から読んでください。

「スペース」キーを傍受して処理する方法が見つからない場合は、通常のTextViewを使用し、QWERTYではなく数字のキーボードを手動で開くことをお勧めします(一般Input Reference )。ハードキーボードから押されたキーを検証することができます。

申し訳ありません申し訳ありませんが、私はあなたにもっと確かな答えを与えることができませんでした!

+0

これは私がこの場合にしなければならないことだと思います。しかし、スペースバーだけがカーソルを別のフィールドにジャンプするので、奇妙です - 他の許可されていない文字は何もせず、 "番号"フィールドを選択したままにしておきます。 –

2

レイアウトxmlファイルのandroid:inputType="phone"は?

+0

私はこのことについての洞察にも興味があります。これはより大きな数字のキーボードを見せてくれるようになりました –

4

最高のチョイスが、私は「数」それを残すとAndroidを追加しようとしましたInputType.TYPE_CLASS_DATETIME

+0

これはハッキーですが、それは私のために働いた – marchinram

関連する問題