2010-01-01 171 views
8

我有一個ListView,它可以使用硬件鍵盤來過濾項目。但是,對於沒有硬件鍵盤且只有虛擬鍵盤的手機,我應該怎麼做?有沒有辦法添加一個按鈕,當按下時,虛擬鍵盤顯示?顯示虛擬鍵盤的按鈕?

回答

28

我可以使用下面的代碼切換屏幕鍵盤。我希望這對某人有用。

InputMethodManager inputMgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
inputMgr.toggleSoftInput(0, 0); 
+0

謝謝你somuch馬克它工作得很好..... – praveenb 2012-03-29 10:22:36

+0

做得好完美ok – Sandy 2012-12-29 04:34:35

+0

我只拿到鍵盤,沒有別的,沒有文字寫字段。 ??? – marjanbaz 2013-06-06 16:30:53

3

一個建議可能是隻使用文本輸入框(EditText)。這樣,用戶在理論上可以輸入多個字符來縮小搜索範圍(並查看他們輸入的內容)。要顯示屏幕鍵盤,他們所需要做的就是觸摸文本框。如果這個盒子被命名爲「搜索」或類似的東西,我相信用戶比按鈕更直觀。

+0

感謝這使我朝着正確的方向 – Tyler 2010-01-01 21:49:59

2

有一個約定(這也許別人可以提供參考—我不能很快找到任何東西),持有該菜單硬件按鈕,打開軟鍵盤。

雖然這看起來依賴於設備。我知道它適用於G1,但在我的HTC Hero中,它並不適用於主屏幕(儘管HTC似乎已經搞砸了一些快捷方式,例如按住按鈕即可使用主頁)。

無論如何,我知道像ConnectBot這樣的其他應用程序提及並使用這個約定來調出虛擬鍵盤。

+2

在菜單上長按僅僅是當時不知道軟鍵盤的應用程序的最後一種兼容性問題。今天編寫的應用程序不應該依賴它。因爲它是一種兼容模式,所以它將鍵盤置於與您所期望的不同的狀態 - 例如,用戶需要在瀏覽UI時明確忽略它,而不是遵循正常的自動解散規則。 – hackbod 2010-01-01 21:31:17

+0

感謝您的澄清(來自Android不少!))。那麼對於原始問題推薦的UI解決方案是什麼? bdls提到了一個明確的搜索/過濾文本框? – 2010-01-01 21:39:57

+0

添加一個EditText框似乎工作。我在http://stackoverflow.com/questions/1737009/answer-to-making-a-nice-looking-listview-filter-on-android(第一個答案)找到了一個問題,它給出了一個很好的教程,我正在關注。 – Tyler 2010-01-01 21:53:23

0

保持菜單按鈕似乎不再適用於Android 4.0(IceCreamSandwich)。 這打破了許多應用程序中的可篩選列表,用戶現在無法再過濾列表,並且需要通過長長的列表進行眼球掃描。