2011-03-08 78 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

希望它有幫助。

相關問題