2011-03-08 48 views
5

我需要在应用程序启动时显示虚拟键盘,但到目前为止我失败了。Android首次启动时显示软键盘?

我的方法使用此代码“的OnCreate”显示虚拟键盘

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.toggleSoftInput(txtBuscar.getId(), InputMethodManager.SHOW_FORCED); 

此代码工作正常,在任何屏幕上在任何时候,但“第一”活动开始时无法正常工作。为什么?

我尝试过,当我开始另一个活动,它的工作原理,但不起作用,当我开始“第一”活动。

我试图把这个代码放在事件“OnCreate”等等......但它似乎不起作用。

无论如何,当我启动应用程序时,“强制”显示键盘?

在此先感谢。

回答

24

我找到了解决办法:

txtPassword.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       InputMethodManager keyboard = (InputMethodManager) 
       getSystemService(Context.INPUT_METHOD_SERVICE); 
       keyboard.showSoftInput(txtPassword, 0); 
      } 
     },200); 

谢谢!

+0

似乎只能在肖像模式下工作。当我切换到横向模式时,软键盘拒绝进入。我尝试了两种方法。在活动启动之前以横向模式进行手机,并在显示活动时切换到横向模式。有关如何进行的任何线索? – 2011-04-05 11:41:51

+0

太棒了!它是Android的错误?尝试在onResume()上运行键盘,但第一次没有这样的延迟就没有启动 – Sash0k 2013-02-15 13:03:15

1

如果活动首先从后台带入,则不会调用onCreate。你有没有尝试把这个代码放在onResume中?

仅当第一次启动活动或者活动被终止并且用户再次导航到活动时,才会调用onCreate。因此,如果活动仍处于活动状态,但在后台,它将不会调用onCreate。

另一方面,每当活动从背景到达前景(在屏幕上可见)时,都会调用onResume。

这里是链接到活动生命周期,如果你有兴趣http://developer.android.com/reference/android/app/Activity.html

希望它有帮助。

相关问题