私たちは最初の Android アプリに取り組んでおり、これまでのところ非常に楽しい経験になっています。これはほぼ完成していますが、リリース前に、主に Android ソフト キーボードに関していくつかの考慮事項があります。
数値の入力に使用するEditTextフィールドがいくつかあり ます。ユーザーが Enter キーを押したときにイベントをキャプチャし、このコールバックで計算と保存を行います。
問題は、電話機ごとにキーボードが異なるため、固定イベントを取得できないことです。一部には「完了」ボタンがあり、HTC フォンには「Enter」ボタンがあります。imeOptions を「done」として使用してみましたが、HTC 電話には影響しませんでした。
また、戻るボタンを押すことでキーボードを閉じることができることもわかっています。したがって、私の質問は、ユーザーが入力を停止したとき、またはキーボードが非表示になったときを知る信頼できる方法があるかどうかです.下)..
つまり、Android 開発者はソフト キーボードをどのように扱うのでしょうか。editText onClick()イベントでKeyEvent.KEYCODE_ENTERを確認し、そこでタスクを実行します。HTC Android では動作しますが、入力の代わりに完了ボタンがある友人の Nexus 電話では動作しません。onClick も呼び出されません。開発者はこれをどのように処理しますか?
編集:私の髪の半分を失った後、そしてここにいる何人かの良い友達の助けを借りて
私はあなたの提案をすべて試しましたが、最後にonEditorActionListener と onKeyListenerメソッドを使用することでうまくいきました。onEditorActionListenerの onEdit コールバックで、キーコード ACTION_DONE をチェックしました。これは、キーボードの完了ボタンで呼び出されました。enter onKey を持つキーボードでは呼び出されます。onKey メソッドでは、ハードウェアのバック プレス イベントも処理できるように、KEYCODE_BACK もチェックしました。完了してキーボードで入力するAndroidデバイスをまだ見つけていません(真剣に)、それでもフラグを使用してそのケースを処理しました。onEditorActionListener を提案してくれた @Femi に感謝します。また、助けてくれたすべての友人に感謝します。しかし、私の元の質問への答え
Q: Android のソフト キーボードが終了したことを確認する信頼できる簡単な方法はありますか (すべての電話で機能するコールバック)。
回答 :いいえ、ここで提案されているすべての方法と、他のサイトで提案されているすべての方法は簡単ではありません。また、キーボードのリターン キーのイベントを処理することは、どのオペレーティング システムでも最も基本的なことだと思います。グーグル、そこにいますか?