2011-03-07 2 views
1

나는 아주 단순한 코드를 사용하고 있지만 작동하지 않으려 고합니다. 운영 체제 블록이이를 가로 채고 있습니까?메뉴를 길게 누를 수 있습니까?

@Override 
public boolean onKeyLongPress(int keyCode, KeyEvent event) { 


    if (keyCode == KeyEvent.KEYCODE_MENU) 
    { 
    longOptionPress = true; 
    openOptionsMenu(); 
     return true; 
    } 
    return super.onKeyLongPress(keyCode, event); 
} 

답변

10

당신은 정상 onKeyPress() 방법에서 이벤트에 startTracking()를 호출해야합니다 :

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_MENU) { 
     event.startTracking(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

a question I asked and answered some time ago를 참조하십시오.

+0

빠른 응답과 링크를 보내 주셔서 감사합니다. 일반 메뉴의 후속 질문에 대한 답변은 답변하지 않았습니다. – Maximus

+0

이제는 메뉴 버튼을 한 번 클릭하지 않는 것이 문제입니다. 그것을 어떻게 피합니까? –

1

ListView 인 경우 onCreateContextMenu을 사용해야합니다.

public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) 
관련 문제