2011-07-27 2 views
3

onCreate에서 선형 레이아웃 뷰를 변수 activeView에 첨부합니다. 그런 다음 registerForContextMenu(activeView)으로 전화하십시오. 모든 것이 제대로 작동하고, 상황에 맞는 메뉴가 생성되고, 항목을 클릭 할 수 있지만, 에서 AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo()으로 전화하고 nullpointerexception을 얻습니다. registerForContextMeu(activeView)이 OnCreateContextMenu에 null ContextMenuInfo를 처음부터 전달한다는 것을 알기 위해 null menuInfo 변수를 모두 추적했습니다. 왜 이런 일이 일어나는 걸까요? 선형 뷰와 함께 다른 뷰, listView에 대해 동일한 프로세스를 수행하며 문제가 존재하지 않습니다.onCreateContextMenu를 전달하는 registerForContextMenu가 null ContextMenuInfo 인 이유는 무엇입니까?

+1

'OnItemLongClickListener'와'registerForContextMenu'가 모두 설정되어 있다면'AdapterContextMenuInfo'가 null이되는 것을 피하기 위해 리스너에서'false'를 리턴해야합니다. 특정 목록 항목에 대한 컨텍스트 메뉴를 사용할 수 없으므로 실제로 listenerContextMenu를 호출합니다. –

+0

Thx @ 3k- !! 이 솔루션을 찾는 데 몇 시간이 걸렸습니다. 청취자에게서'false'를 되 돌리는 것은 일을 해냈습니다! – mixable

답변

0

getMenuInfo()에서 어떤 것을 벗어나기를 기대하십니까? 어쨌든 LinearLayout에 의해 채워지지 않을 것이라고 생각합니다. 대부분의 경우 메뉴를 생성 한 View (동일한 LinearLayout)를 얻을 수있을 것이라고 믿습니다.

관련 문제