2011-02-05 5 views
3

나는 Android를 사용하여 응용 프로그램을 만듭니다. 내가 항목 1을 클릭하면메뉴 옵션 항목을 클릭하여 상황에 맞는 메뉴 열기

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="Item1" android:id="@+id/item1" /></menu> 

, 나는 내 활동 onOptionsItemSelected를 사용 나는

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.mymenu, menu); 
    return true; 
} 

아래 메뉴는 XML 파일에서로드 같은 옵션 메뉴를 만드는 활동을 같은 클릭 후 작업 :

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()) { 
    case R.id.item1 : 
     // here, I would like to open a contextual menu 
     return true; 
    default : 
     return super.onOptionsItemSelected(item); 
    } 
} 

그래서 사용자가 항목 1을 클릭하면 문맥 메뉴를 열고 싶습니다. 우선 인터넷에서 여러 자습서처럼 화면에서 보류 위치를 사용하지 않고 직접 컨텍스트 메뉴를 열 수 있는지 여부를 알 수 없습니다.

가능하면 상황 별 메뉴를 어떻게 열 수 있습니까?

내 항목 1의 경우 registerForContextMenu()openContextMenu()을 사용했지만 매개 변수를 넣어야한다고 생각 했습니까?

누군가가 그 방법을 생각해 본다면 어떻게해야하는지 알고 싶습니다.

답변

4

문맥 메뉴가 실제로 필요한 경우, 주어진 항목을 길게 눌러 안드로이드에서 설계된 문맥 메뉴를 사용합니다. 사람들은 이것에 익숙해 져있어 앱이 그렇게 다르지 않아야합니다.

다소 복잡합니다. 당신이 할 수있는 일은 대화창으로 스타일을 지정하는 별도의 액티비티에 메뉴가로드되도록하는 것입니다 (바쁜 반투명 배경으로 알 수 있습니다). 이것은 쉽게 manifest.xml 파일에 활동에 Theme.Dialog 스타일을 적용하여 수행 할 수 있습니다 :

<activity android:name=".activities.TagPopupActivity" 
      android:label="Tagging" android:theme="@android:style/Theme.Dialog"> 
       ... 
</activity> 

은 또한 당신이 직접 설명 here 같은 대화 상자 창을 만들 수 있습니다. 그런 다음 주 목록 활동에 적절한 클릭 수신기를 구현하여 컨텍스트 (예 : 목록 클릭)를 얻은 다음 사용자가 항목을 클릭하면 해당 ID를 검색하고이를 "메뉴"로 전달하는 번들로 패키지화합니다. 팝업 대화 상자 스타일.

+1

답변 해 주셔서 감사합니다. 사실 나는 Android로 시작합니다. 그래서 나는 물건을 만드는 것이 가장 좋은 방법인지 잘 모릅니다. 내 머리에는 두 가지 가능성이있었습니다. 먼저 컨텍스트 메뉴를 만들었지 만 사용자 환경에 좋은 아이디어는 아닙니다. 두 번째로 컨텍스트 메뉴에서 사용자에게 제안하고 싶은 항목을 표시하는 항목을 클릭하여 새로운 활동을 시작하려고 생각했습니다. 아마 그것은 더 좋은 생각입니다. 그래서 두 번째 아이디어를 코딩하려고합니다. – sylsau

+3

심지어 Google의 앱도 메뉴 항목에서 컨텍스트 메뉴를 열어 놓기 때문에 길게 누르는 것이이를 구현하는 적절한 방법이라고 생각하지 않습니다. –

+0

'메뉴 옵션 항목을 클릭하여 상황에 맞는 메뉴 열기'에 대한 답변은 어디에 있습니까? –

2

나는 게시물이 오래되었음을 알고 있지만 여기에 또 다른 해결책이 있습니다 (빠르지 만 실제로 섹시하지는 않습니다).

공개 설정이 사라진 상태로 가상의보기를 추가하고이보기를 사용하여 상황에 맞는 메뉴를 시작하십시오.

관련 문제