我知道我可以在更高API級別上覆蓋onBackPressed()
以檢測是否按下了後退鍵。有沒有類似的方式來做菜單按鈕?我不是在KeyEvents中檢查密鑰碼的忠實粉絲。謝謝!如何檢測用戶何時按下其Android設備上的「菜單」鍵?
回答
如果您只是想爲菜單按鈕創建按鍵偵聽器,則應該覆蓋onKeyDown並檢查鍵碼。現在既然你指出你不是那麼喜歡你,你也可以重寫onPrepareOptionsMenu,每次點擊菜單按鈕並向用戶顯示一個菜單。如果您在onCreateOptionsMenu方法中沒有提供菜單,我不確定是否調用了這個選項。
你在尋找這個????的:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
//do your work
return true;
}
return super.onKeyDown(keyCode, event);
}
謝謝。我知道這種方法,但我不是檢查密鑰的大粉絲。我想要的東西類似'onBackPressed()',而不是'if(keyCode == KeyEvent.KEYCODE_BACK)'。 – user1032613
如果您看看Activity源代碼的前幾行,您會看到onBackPressed按照後退按鈕keyCode調用: http://grepcode.com/file/repository.grepcode.com/java/ ext/com.google.android/android/4.3_r2.1/android/app/Activity.java#Activity.onKeyDown%28int%2Candroid.view.KeyEvent%29 – Lior
這是否仍然適用於API 22?我有一個應用程序,該事件不會在家庭或菜單鍵上觸發。 –
- 1. 檢測何時按下@鍵
- 2. 如何檢測其他Android設備?
- 3. 如何檢測鍵盤上的刪除鍵何時被按下?
- 4. 4.0設備上的Android菜單按鈕
- 5. Android:按下軟按鍵上的「完成」鍵時檢測
- 6. 檢測Android設備上的USB設備何時分離
- 7. 在ActionBar上檢測按鍵子菜單
- 8. 如何當用戶在Android設備上啓動anapplication檢測
- 9. 如何檢測何時在觸摸設備上顯示鍵盤?
- 10. 如何檢測何時按下按鈕並在android上釋放
- 11. Android - 按下硬件菜單按鈕時如何打開菜單?
- 12. 當用戶在Chrome上按鍵盤時如何檢測`delete`和`.`?
- 13. 在Android中檢測物理菜單鍵按下
- 14. 沒有菜單按鈕的Android設備上的菜單
- 15. 如何檢測何時在Android鍵盤上按「開始」
- 16. 如何檢測上下文菜單被隱藏的時間?
- 17. Android Robotium - 如何檢測上下文菜單?
- 18. 如何檢測用戶何時按下了關機按鈕?
- 19. C++檢測用戶按下的ENTER鍵
- 20. iOS:如何檢測使用BT鍵盤時按下的任何按鍵
- 21. 如何在android/ios設備上長按約束默認上下文菜單並顯示自定義菜單?
- 22. KeyPress:如何檢測用戶是否在應用程序運行時按下鍵盤上的「向下」箭頭鍵
- 23. 如何在按下鍵盤的上下文菜單鍵時更新Excel單元格菜單
- 24. Android設備的列鍵檢測
- 25. 如何檢測Android軟鍵盤上的按鍵刷卡
- 26. 如何檢測Backspace鍵長按何時?
- 27. Android - 如何從多個設備中檢測同一用戶?
- 28. 如何檢測按下Shift鍵?
- 29. 我如何檢測Vue.js上的多個按鍵(上/下)
- 30. 如何在WPF中右鍵單擊按鈕上下文菜單?
謝謝,這個作品。我結束了在'onCreateOptionsMenu()'中的菜單對象的膨脹,並覆蓋了'onOptionsItemSelected()'。 – user1032613
@ bobbake4第二次按菜單時如何監聽public void onOptionMenuClosed()不起作用。 –
在Android 4.4.2上沒有定義任何選項菜單,onPrepareOptionsMenu只在活動開始時被調用,並且不會再次。 – velis