显示对话框的软键盘
我正在显示edittext视图的对话框。 但是,软键盘只有在用户在编辑视图中按下时才会打开。 所以我试着用下面的代码调用一个InputMethodManager。
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(dialogField,0);
dialogField是input字段。 但是,到底什么时候我应该这样做呢? 我在对话框的onStart()方法中试过,但没有任何反应。 我也尝试请求对话框的焦点之前,但这并没有改变。
我也试过这个代码
dialogField.setOnFocusChangeListener(new View.OnFocusChangeListener() { public void onFocusChange (View v, boolean hasFocus) { if (hasFocus) { Main.log("here"); dialogInput.getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); /* InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); mgr.showSoftInput(dialogField,0); */ } } });
在这两个版本。 但是没有软键盘想出现。 Main.log只是一个日志,它显示了这个函数实际上是被调用的。 是的,它被称为。
在打开对话框之前,我可以使用SHOW_FORCED标志来获取键盘。 但是,它不会在退出时closures。 而我只能做到这一点之前,我显示对话框。 在任何callback里面,它也不起作用。
真棒问题,我也试图做到这一点,并find了解决办法。
使用对话框构build器类AlertDialog.Builder
你将不得不像这样调用对话框:
AlertDialog.Builder builder = new AlertDialog.Builder(); AlertDialog dialog; builder.set... dialog = builder.create(); dialog.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); dialog.show();
这对我来说工作得很好。
注意:你必须import android.view.WindowManager.LayoutParams;
那里的价值不变。
尝试这个
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edttxt.getWindowToken(), 0);
closures
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edttxt.getWindowToken(), 0);
这似乎是不可能的。
所以我做了一个新的活动,而不是对话框,让用户在那里编辑。 请注意,在活动中,您可以在清单文件中设置键盘模式。 我将它设置为当活动打开时显示。
还要注意,用硬键在模拟器上进行testing不会打开SHOW_IMPLICIT或0标志的键盘。
- EditText setError()带有图标但没有popup消息
- Facebook如何在Android的应用图标上添加徽章号码?
- 在fragmentpageradapter中重用片段
- 权限拒绝:这需要android.permission.INTERACT_ACROSS_USERS_FULL
- ImageView中带有圆angular的位图
- 如何从Android的表中删除sqlite中的所有logging?
- 错误:执行失败的任务':android:transformClassesAndResourcesWithProguardForRelease'
- 什么是java.lang.Object中的“shadow $ _klass_”和“shadow $ _monitor_”variables?
- Android – 防止启动时出现白屏