我需要在应用程序启动时显示虚拟键盘,但到目前为止我都失败了。
我在方法“OnCreate”中使用此代码来显示虚拟键盘
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(txtBuscar.getId(), InputMethodManager.SHOW_FORCED);
此代码可以随时在任何屏幕上正常工作,但在“第一个”活动开始时不起作用。为什么呢?
当我开始另一项活动时我尝试了它并且它可以工作,但是当我开始“第一次”活动时它不起作用。
我尝试将此代码放入事件“OnCreate”等等......但似乎无效。
无论如何,当我启动应用程序时,是否“强制”显示键盘?提前致谢。
答案 0 :(得分:24)
我找到了解决方案:
txtPassword.postDelayed(new Runnable() {
@Override
public void run() {
InputMethodManager keyboard = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(txtPassword, 0);
}
},200);
谢谢!!!
答案 1 :(得分:1)
onCreate。您是否尝试过将该代码放入onResume?
仅当活动首次启动或活动被终止且用户再次导航到活动时,才会调用onCreate。因此,如果活动仍处于活动状态但在后台,则不会调用onCreate。另一方面,每次活动从背景到达前景(在屏幕上可见)时,都会调用onResume。
如果您对[{3}}感兴趣,请点击活动生命周期链接。
希望它有所帮助。
答案 2 :(得分:0)
我遇到了同样的问题,下面的这种方法对我有帮助
public static void showKeyboard(Context context) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
}
}