2009-12-21 6 views
7

를 호출하는 방법 :나는이처럼 내 상황에 맞는 메뉴를 열고 상황에 맞는 메뉴를

public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch(item.getItemId()) 
    { 
    case OPTIONS: 
     registerForContextMenu(v); 
     openContextMenu(v); 
     return true; 

여기서

private OnClickListener optionsClickListener = new OnClickListener() 
{ 
    public void onClick(View v) 
    { 
    registerForContextMenu(v); 
    openContextMenu(v); 
    } 
}; 

가 어떻게 여기 내 일반 메뉴 핸들러 내부에서

registerForContextMenu(v); 
openContextMenu(v); 

를 호출 할 수 있습니다 나는 지나갈 전망이 없다?

+1

옵션 메뉴 항목에서 ContextMenu를 표시하려고합니까? –

+0

네, 그게 질문입니다. – gdonald

+1

이것은 전적으로 가능합니다. 본래의 질문은 분명하지 않고 이해가되지 않습니다. 나는 그 의견이 당신이 아주 분명하게 원하는대로하기 때문에 나중에 아무도 대답하지 않는다는 것에 놀랐습니다. 사람들이 귀하의 질문을 이해하는 데 어려움이있을 때 의견을 수정하고 주석을 답장해야합니다. – Casebash

답변

14

상황에 맞는 메뉴를 등록하면 길게 클릭하여 열 수 있습니다. 프로그래밍 방식으로 열려면 openContextMenu으로 전화하면됩니다. 보기를 얻는 데는 ID를 부여하거나 Activity 클래스의 속성으로 저장하면 findViewById을 사용할 수 있습니다.

+0

감사. 나는 그것을 작동 시켰어. – gdonald

0

당신은 또한보기입니다 this 있습니다.

+0

내가 설명한 문맥에서 "this"는보기가 아닌 활동입니다. – gdonald

+1

이 방법으로 무엇을하고 있습니까? 전달중인보기는 기본보기가 아니며 이벤트를 가져온보기이므로 단추 또는 다른 것이 좋습니다. – CaseyB

+0

onOptionsItemSelected()는보기에 대한 액세스를 제공하지 않습니다. MenuItem에 대한 액세스를 제공합니다. 어떻게해야합니까 onOptionsItemSelected()의 컨텍스트에서 registerForContextMenu() 및 openContextMenu()를 호출합니까? 뷰가 아닌 MenuItem 만 제공됩니다. MenuItem에서 현재 뷰를 가져 오는 방법은 무엇입니까? 뭐라구? 뭐? 뭐라구? ? – gdonald

0

실제로 찾고있는 것은 submenu입니다. 메뉴 항목을 클릭하면 하위 메뉴를 팝업 할 수 있습니다.

+0

아니, 그게 내가하려는 전부는 아니야. – gdonald

+0

하위 메뉴를 표시하는 대신 OptionMenu에서 ContextMenu를 팝업해야하는 이유; UI 및 코드 관점에서 보면 거의 동일하게 보입니다. 당신이 정말로해야한다면, 당신은 ImageView, TextView, Button, 등등과 같은 어떤보기라도 건네 줄 수 있습니다. –

+0

그러나 그것은 나를 도왔습니다 .. thanks :) –

관련 문제