2 つの EditText フィールドがあり、最初のフィールドの検証が成功した直後に 2 番目のキー パッドを表示したいと思います (ユーザーが 2 番目のフィールドをタップしないようにします)。ここで応答を試しましたが、検証が失敗し、ユーザーがエラー ポップアップで [OK] をタップした場合にのみ機能します。
private void showMSG( String str, final EditText txtField ) {
// build pop up box with error message
AlertDialog.Builder builder = new AlertDialog.Builder( this );
builder.setMessage( str )
.setTitle( "Input Error" )
.setCancelable( false )
.setNeutralButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
showKeyPad( txtField );
//((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(txtField, 0);
}
});
AlertDialog message = builder.create();
message.show();
} // END showMSG() -----
検証に合格し、2 番目のフィールドにまだ入力が必要な場合、キーパッドは表示されません。
if ( this.frameSizeLength() == 0 ) {
this.txtFrameSize.requestFocus();
// TO DO: display keyboard
this.showKeyPad( this.txtFrameSize );
}
複数のケースでキーパッドを表示する必要があることを認識して、キーパッドを表示するメソッドを作成しました。
private void showKeyPad( View v ) {
( (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE) ).showSoftInput(v, 0);
} // END showKeyPad() -----
showKeyPad() に送信されるものはすべて EditText であり、Android のドキュメントを読んだ後でも、まだ途方に暮れています。
ありがとう、MD。