2011-07-27 34 views
3

在onCreate中,我將線性佈局視圖附加到變量activeView。然後我打電話給registerForContextMenu(activeView)。看起來,一切工作正常,上下文菜單被創建,項目是可點擊的,但是,在onContextItemSelected,我打電話AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(),我得到一個nullpointerexception。我已經追蹤了空menuInfo變量回來發現registerForContextMeu(activeView)從一開始就傳遞OnCreateContextMenu一個空ContextMenuInfo。這是爲什麼發生?我在一個不同的視圖中執行同樣的過程,一個listView,與linearlayout一起,並且問題在那裏不存在。爲什麼registerForContextMenu傳遞onCreateContextMenu null ContextMenuInfo?

+1

如果您同時擁有'OnItemLongClickListener'和'registerForContextMenu',則必須在偵聽器中返回'false'以避免'AdapterContextMenuInfo'爲null。我實際上在監聽器中調用'registerForContextMenu',因爲我禁用了某些列表項的上下文菜單,並且它工作正常。 –

+0

Thx @ 3k- !!花了幾個小時才找到這個解決方案。在聽衆中返回'假'就完成了這項工作! – mixable

回答

0

你期望從getMenuInfo()中獲得什麼?無論如何,我不認爲它會被LinearLayout填充,我相信至多你能夠得到產生菜單的View(相同的LinearLayout)。