2011-07-29 3 views
0

custom list view을 구현했습니다. 사용자 정의 목록에서 컨텍스트 메뉴 항목을 사용하는 방법

내가 내 어댑터 클래스에

itemView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() 
{ 
     @Override 
     public void onCreateContextMenu(ContextMenu menu, View v, 
       ContextMenuInfo menuInfo) 
     { 

       menu.setHeaderTitle("Context Menu"); 
       menu.add(0, v.getId(), 0, "Action 1"); 
      // menu.add(0, v.getId(), 0, "Action 2"); 

     } 
    }); 

방법 getView에서 설정 목록보기 위해 contextmenu를 설정 (활동을 사용하고 ListRowAdapterBaseRowAdaptor 연장).

하지만 항목 선택 이벤트는 어떻게 처리합니까?

해당 이벤트를 내 Activity에 수신 할 수 있습니다.

그러나 어떻게 목록보기의 행을 식별 할 수 있습니까?

답변

0

선택한 항목의 인덱스가 포함 된 전역 int 변수를 만들 수 있습니다. listview onLongClick(), onClick() 등 이벤트의 변수 값을 설정합니다. 그런 다음 상황에 맞는 메뉴의 항목 클릭 이벤트 안에 있으면 목록보기에서 현재 선택된 행에 액세스 할 수 있습니다.

0

LongClickListener를 listview로 설정하고 longClick의 showContext 메뉴를 설정합니다.

Class ActivityName extends Activity implements IconContextItemSelectedListener 
{ 
    private IconContextMenu cmContextMenu; 
    private int selectedPosition ; 

    onCreate() { 
     cmContextMenu = new IconContextMenu(this, R.menu.fbupdatecontextmenu); 
     cmContextMenu.setOnIconContextItemSelectedListener(this); 
     lv.setOnItemLongClickListener(new OnItemLongClickListener() { 
      public boolean onItemLongClick(AdapterView<?> av, View v, int position, long arg3) { 
       selectedPosition = position; 
       cmContextMenu.show(); 
       return true;    
      } 
     }); 
    } 

    public void onIconContextItemSelected(MenuItem item, Object info) { 
     switch (item.getItemId()) { 
     case R.id.someThing: { 
      system.out.prinlt("position " +selectedPosition); 
      break; 
     } 
    } 
} 
+0

감사합니다. 그러나 작동하지 않습니다. – rwe

+0

IconContextMenu가 내 사용자 정의 클래스이기 때문에 코드 스 니펫은 참조 용이었습니다. 당신은 contextMenu를 생성하고 그것을 보여줄 필요가있다. –

관련 문제