0
我想在用戶按菜單按鈕時顯示上下文菜單。我發現並使用下面的代碼片段:顯式的上下文菜單調用在Android中不時起作用
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if((keyCode == KeyEvent.KEYCODE_MENU) && event.getRepeatCount() == 0)
{
ImageView v = (ImageView)findViewById(IMAGE_ID);
Log.v("me", "menu " + v.toString());
openContextMenu(v);
}
return true; // return false; doesn't work either
}
該視圖當然是註冊上下文菜單,並且它可以通過長時間觸摸正常工作。問題是上述代碼只能不時地工作。這是日誌消息總是被解僱,當我按菜單按鈕,但上下文菜單顯示在非常罕見的情況下。當它顯示正常時,唯一的情況就是在應用程序啓動之後。換句話說,只有第一次嘗試是成功的,其他所有人都偶爾工作,但大部分都不會。視圖不會更改,始終可以找到,否則會在記錄行中產生此類問題和異常。
「我想在用戶按菜單按鈕時顯示上下文菜單」 - 請不要這樣做。對於初學者來說,有數百萬設備沒有MENU按鈕。請允許其存在的MENU按鈕用於正常操作欄或選項菜單。 – CommonsWare
@CommonsWare。我會做,如果有人能幫我解決問題;-)。我知道某些設備上沒有菜單按鈕,但如果存在,用戶通常習慣於按下它並獲得反饋。至於操作欄和選項菜單,我們可以在其他適當的地方討論這個設計問題,它不會偏離主題。請讓我知道。 – Stan
「,但如果它存在,用戶通常習慣於按下並獲得反饋」 - 否,用戶通常習慣於按它並獲得操作欄溢出或選項菜單。用戶通常不習慣按下它並獲得其他任何東西。自從Android開始以來,這一直是UX反模式。請允許其存在的MENU按鈕用於正常操作欄或選項菜單。作爲一個附帶的好處,你可以避免在這個問題上遇到問題。 – CommonsWare