2010-08-19 98 views
1

我的函數,從onResume()運行不會導致鍵盤出現。android force鍵盤可見

我做錯了嗎?

private void showKeyboard() { 
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
mgr.showSoftInput(txtSearch, InputMethodManager.SHOW_FORCED); 
txtSearch.requestFocus();} 
+0

你確定onResume()正在調用,而不是其他onStart()? Mabye添加一些吐司或打印線,看看logcat?我發現這通常是我的問題,像這樣的東西。 – Mike 2010-08-19 00:24:15

+0

@Mike您可以閱讀活動生命週期文檔,而不是噴灑打印語句。 http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle正如你所看到的,onResume會在每次活動焦點時被調用。 – 2010-08-19 00:46:59

回答

0

軟鍵盤有時可能會很棘手。我相信最後一行,txtSearch.requestFocus()是不必要的,實際上可能會把事情搞砸。通過在txtSearch上告訴鍵盤SHOW_FORCED,你已經告訴它有焦點。

+0

嗯。我試圖用這條線和出去。這是一個棘手的測試,我無法通過代碼成功顯示鍵盤。 – 2010-08-19 14:11:40

0

getWindow()。setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 可能會幫助你。 請注意,有Android設備的硬件鍵盤在那裏。 e.G. GoogleTV設備通常沒有觸摸屏,而是一個硬件鍵盤。有些甚至模擬觸摸屏。

這是相關的,如果你是在一個模擬器開發:

http://plainoldstan.blogspot.com/2010/09/android-set-focus-and-show-soft.html

「實驗時我實際上並沒有得到我想要的東西,直到我意識到我應該有沒有硬件鍵盤仿真器設備」

+0

我剛剛證實,show_forced工程,但只有在沒有硬件鍵盤的真實設備上,並在您明顯地設置模擬器沒有硬件鍵盤的模擬器。 – 2011-07-11 10:28:59

相關問題