Android:在焦点位于EditText时自动显示软键盘
我正在使用AlertDialog
显示一个输入框。 当我调用AlertDialog.show()
,对话框中的EditText
自动对焦,但软键盘不会自动显示。
如何在显示对话框时自动显示软键盘? (并且没有物理/硬件键盘)。 与我按搜索按钮调用全局搜索时的方式类似,软键盘会自动显示。
您可以在AlertDialog
上的EditText
上创建焦点侦听AlertDialog
,然后获取AlertDialog
的Window
。 从那里你可以通过调用setSoftInputMode
来进行软键盘显示。
final AlertDialog dialog = ...;
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
为显示键盘使用情况:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
隐藏键盘使用:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(),0);
您可以在创建对话框后立即请求软键盘(在SDK-r20上进行测试)
// create dialog
final AlertDialog dialog = ...;
// request keyboard
dialog.getWindow().setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
链接地址: http://www.djcxy.com/p/16661.html
上一篇: Android: show soft keyboard automatically when focus is on an EditText