2011-10-21 76 views
0

我想要在Android中檢測按鍵組合,例如我想在用戶按下MENU + S時打開我的應用程序的搜索功能。在Android中檢測按鍵組合/雙擊

任何好辦法嗎?

編輯:我知道我可以做一個按鈕,但讓我只是不想佔據屏幕空間。所以認爲,關鍵組合將是最好的方式,只是我不能想出任何檢測它們的好方法。 Android是否提供我可以使用的某種API?

編輯:斯蒂芬指出這個有趣的想法,這使我感興趣。

請注意,軟鍵盤可以使用組合鍵,但它不具備特殊的功能,因此更好。對於 的實例,爲了大寫一個字母,在Android中,您不會在同一時間按下 shift鍵,您只需按一次shift鍵 ,然後按下該字母(然後按住Shift鍵 )變成未壓縮)。我個人發現可用性流程在手機上非常好地工作,很難同時協調多個手指。

但不幸的是我不能使用這種設計,因爲我希望鍵盤按鈕保留默認行爲。

編輯:我也可以去雙水龍頭,如果它比組合更容易檢測,但我不知道如何檢測關鍵雙擊。 謝謝斯蒂芬再次提出另一個絕妙的主意。

回答

0

你確定這是個好主意嗎?爲此重寫搜索按鈕不是更容易嗎?

您是否擁有您個人使用的實際Android手機?我意識到一些Android開發人員仍然主要使用iPhone,並且不熟悉手機之外的Android界面,他們可以在工作中對其進行測試。

請注意,軟鍵盤可以使用組合鍵,但它並不特別,因此它更好。例如,要將一個字母大寫,在Android中,您不會在該字母的同一時間按下Shift鍵,您只需按一次Shift鍵,然後按下該字母(然後您的Shift鍵自動變爲未按下)。我個人發現可用性流程在手機上非常好地工作,很難同時協調多個手指。

+0

好吧,讓我們只是想使用組合鍵來做到這一點。 –

+0

那麼我擁有一部Android手機,這是一個有趣的事情,你指出。我會重新考慮我的設計,但同時我會很感激你能否給我一些關於如何檢測組合鍵的想法。我寧願有更多的選擇。 –

+0

位置並不重要。你看,我想要使用組合鍵的一個原因是因爲我希望按下按鈕時每個按鈕的行爲都正常,但我希望只有按下組合鍵時纔會發生特殊情況。 SHIFT鍵是一個專門設計的按鍵,所以我猜測它何時被按下,Android只是切換CAPS的狀態。但我無法擁有自己的自定義密鑰。如果用戶按下MENU按鈕,我想給他看一個菜單。所以我想我必須去連擊。 –

0

那麼,我也同意搜索按鈕是一個糟糕的android設計。 您可以按照的onkeydown方法

if (keyCode == KeyEvent.KEYCODE_MENU) { 
    // start a thread and let it stop in a while 
} else if(keyCode == YOURDEFINECODE){ 
    // if the thread has been running do what you want 
} else { 
    // stop the thread 
} 
+0

我很抱歉,但我沒有得到你。你能否再解釋一下。特別是你的意思是'keyCode == YOURDEFINECODE'。 –

+0

我不知道你想在活動或小部件中使用它的天氣。我的想法是當用戶點擊菜單按鈕時啓動一個線程,你可以在onKeyDown方法中處理這個。它會等待5秒或更長時間,等待你的下一個動作,之後它會自行消失。在這段時間內,如果用戶點擊您定義的鍵,您可以跳到您想要的活動中,如果他們點擊了其他鍵,只需簡單地停止線程。 – Hubert