我有2个EditText字段,我想在第一个成功验证后立即显示第二个键盘(我不希望用户点击第二个字段)。我已经尝试了响应here,但我只能在验证失败并且用户点击确定弹出错误时才能使用它:
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() -----
如果验证通过且第二个字段仍需要输入,则不显示键盘:
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。
答案 0 :(得分:0)
InputMethodManager imm = (InputMethodManager) Main.mainClassInstance
.getSystemService(Main.mainClassInstance.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
或
public void showKeyboard(View v) {
InputMethodManager imm = (InputMethodManager) Main.mainClassInstance
.getSystemService(Main.mainClassInstance.INPUT_METHOD_SERVICE);
imm.showSoftInput(v, imm.SHOW_IMPLICIT);
}