ソフト キーボードを最初から試してみたところ、 [次へ] ボタンを押すと問題が見つかりました。他のキーボードでも期待通りに動作するので、サンプル開発時には考えていなかったのかもしれません。他のバージョンはまだ試していません。
使用したバージョン: Android API 15 android-sdk/samples/android-15/SoftKeyboard からのソース コード
問題: テキスト フィールドが 2 つあるフォームの場合、次のボタン (右下の入力ボタン) を押した後、カーソルが次のフィールドに移動しません。
例: 連絡先アプリを試すことができます:
- 連絡先を開く
- いくつかの連絡先をクリックします
- アクションバーの上部にある編集ボタンをクリックします
- 連絡先のメールを見て、テキスト フィールドが 1 つしかない場合は + ボタンを押して、テキスト フィールドが少なくとも 2 つになるようにします。
- 最初のテキスト フィールドをクリックして、メール #1 を編集します
- ソフト キーボードのサンプルで次のボタンを入力します
- カーソルが消えて次のフィールドに移動しません (クラッシュすることもありますが、通常はテキスト フィールドをもう一度タッチするだけですべてが正常に進みます)
デバッグ中、まだ問題は見つかりませんでしたが、ソース コードのいくつかの場所を調べましたcom.example.android.softkeyboard.SoftKeyboard
。
public boolean onKeyDown(int keyCode, KeyEvent event)
メソッドには次のものがあります。
case KeyEvent.KEYCODE_ENTER:
// Let the underlying text editor always handle these.
return false;
カーソルの変更はソフトキーボードで処理されないため、デバッグ中にここに落ちて問題ないように見えました
私が考えたもう一つの方法は、
public void onStartInput(EditorInfo attribute, boolean restarting)
たぶん、カーソルがある場所に移動していないため、消えてしまいます。しかし、私はまだその方法を見つけることができなかったので、それが本当に起こっているのかどうかはわかりません.