1

onListItemClick 함수를 통해 새 활동을 호출 할 때 긴 누름 기능 (onCreateContextMenu 함수)이 작동하지 않습니다. onListItemClick 함수에서 try catch 코드 조각 내의 코드에 주석을 달면 onCreateContextMenu가 완벽하게 작동합니다. 하지만 난 다른 목적으로 두 가지 기능을 사용해야합니다.onCreateContextMenu 함수가 작동하지 않습니다.

setListAdapter(new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, listitems)); 

} 

@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 

    registerForContextMenu(v); 
    try{ 
     Intent intent = new Intent(MainActivity.this, Contacts_list.class); 
     intent.putExtra("GroupName", listitems[position]); 
     startActivity(intent); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

@Override 
public void onCreateContextMenu(ContextMenu menu, View view, 
     ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, view, menuInfo); 

    menu.add(1, 1, 1, "Details"); 
    menu.add(1, 2, 2, "Delete"); 

} 
+0

크래시와 관련된 Java 스택 추적을 검사하려면 LogCat을 사용하십시오. – CommonsWare

+0

목록보기 항목을 길게 눌러도 충돌이 발생하지 않지만 새로운 활동이 열립니다. –

답변

0

우선 컨텍스트 메뉴는 일반적이지 않습니다. 이전 UI 스타일입니다.

상기되는 것을 ListView와 컨텍스트 메뉴를 사용하는 적절한 방법은 다음

  1. 통화 registerForContextMenu(), ListView 전달하여 활성 onCreate() (또는 단편 onCreateView())로부터 당신이 컨텍스트 메뉴 그쪽에 따라 원하는대로 수행 onContextItemSelected()에서

  2. : (부작용 onListItemClick()registerForContextMenu() 호출을 제거) t는, 사용자가 메뉴를 불러옵니다 오래 누르면 한 것을 행 onContextItemSelected()에서 찾을 수 AdapterView.AdapterContextMenuInfo로 객체 onContextItemSelected()에 전달 된 MenuItem, 캐스트에 getMenuInfo()를 호출하고보고하기 위해

을 선택했다 position 데이터 멤버 :

AdapterView.AdapterContextMenuInfo info= 
      (AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); 

// then do something with info.position 
+1

보기 v = 새로운보기 (this); registerForContextMenu (v); onCreate()에서이 작업을 시도하고 onListItemClick()에서 제거했지만 onCreateContextMenu() 함수와 동일한 문제가 발생하면 호출되지 않습니다. –

+0

@MubashirAliMemon :'registerForContextMenu()'를 호출하고, 당신의 액티비티의'onCreate()'에서 ** ListView' **를 전달합니다. – CommonsWare

+0

"우선 컨텍스트 메뉴는 일반적이지 않습니다. 이전 UI 스타일입니다." 왜 그들이 옛 스타일인지 설명해 주시겠습니까? 그리고 우리가 사용해야하는 현대적이고 올바른 대안은 무엇입니까? – MainstreamDeveloper00