我有一個ListActivity,我想爲每個列表元素實現上下文菜單。我知道常用的方法是在長按/輕按上顯示上下文菜單。我想知道是否有方法顯示按鍵上每個元素的上下文菜單(最好是菜單鍵)。 要更改我的問題,如何通過按菜單鍵(或任何其他鍵)來觸發上下文菜單而不是選項菜單。如何在按鍵上實現上下文菜單而不是長按/輕按
9
A
回答
8
要打開上下文菜單,請致電openContextMenu()
。要通過密鑰觸發它,請覆蓋onKeyDown()
或onKeyUp()
。
這樣說,我真的不推薦這個。
用戶抱怨Android沒有UI標準。相反,Android具有UI慣例,允許開發人員獲得一些自由(更重要的是,讓您的應用程序在Android Market上市時不會遇到障礙)。
但是,這些用戶的觀點非常有效 - 當應用程序決定停用UI切線時,他們的體驗會受到損害。決定讓菜單鍵彈出一個上下文菜單將是一個這樣的切線。對於初學者來說,在觸摸屏設備上,這不會很好,因爲您的ListView
中沒有選定的項目,所以用戶不清楚MENU所涉及的內容。
我懷疑是否有更好的解決方案來解決您認爲您以這種方式解決的任何問題。
6
我實際上爲我的一個應用程序做了同樣的事情,因爲它對我的應用程序有意義。最好也是最簡單的方法是爲listActivity重寫onListItemClick()。這比onKeyDown()更好,因爲它專門針對有問題的列表項目(視圖),並且僅適用於列表項目,而不適用於屏幕的其餘部分。
onListItemClick(ListView l, View v, int position, long id)
{
v.showContextMenu();
}
那麼所有你需要做的覆蓋上下文菜單的方法和你的黃金
相關問題
- 1. 實現OnClickListener使顯示上下文菜單短按一下不是長按
- 2. 上下文菜單沒有長按
- 3. Android上下文菜單長按
- 4. 長按recyclerview android與上下文菜單
- 5. 調用按鍵事件,而不在JavaScript實際上按下鍵
- 6. 如何在WPF中右鍵單擊按鈕上下文菜單?
- 7. 按鈕長按點擊上下文菜單?
- 8. 在按鈕上的Extjs上下文菜單(右鍵單擊)
- 9. HTML5遊戲如何禁用上下文菜單時長按
- 10. 如何通過長按禁用按鈕打開上下文菜單?
- 11. 按下鍵盤上相應鍵時如何按下按鈕? JavaFX
- 12. 基於長按位置動態修改EditText中的上下文/長按菜單
- 13. 在按下的每個按鍵上實現自動建議
- 14. 在列表項上實現輕掃和長按?
- 15. 在菜單項上調用android上下文菜單按
- 16. 計算按鍵在鍵盤上按下的時間長度
- 17. 在長按iOS上顯示菜單 - Phonegap
- 18. 在按鍵上按下按鍵(按下按鍵後),跳轉到奇怪行爲
- 19. 在React Native中長按打開上下文菜單
- 20. 在TextView中長按鏈接時顯示上下文菜單
- 21. Android長按菜單按鈕
- 22. 如何在應用程序按鍵上顯示列表框上下文菜單?
- 23. 如何在片段上實現後退按鈕按下設備
- 24. Android Long按鈕上下文菜單
- 25. 帶上下文菜單的WPF按鈕
- 26. 鼠標按鍵模擬 - 右鍵和上下文菜單問題
- 27. 按下菜單按鈕時不會出現android選項菜單
- 28. 帶上下文菜單和按需表單的浮動按鈕
- 29. 在ActionBar上檢測按鍵子菜單
- 30. 安卓:彈出菜單上的菜單按鈕被按下
我同意,需要有一些正規的約定開發商遵循使消費者的Android使用體驗,從一個更一致應用到另一個。但是,對於這個具體的問題,我相信有些情況下它是合適的,我自己也是這樣做的。 – mtmurdock 2010-06-05 22:45:32
@mtmurdock:歡迎您提出意見。核心Android團隊似乎沒有分享它:http://developer.android.com/guide/practices/ui_guidelines/menu_design.html – CommonsWare 2010-06-05 23:12:13