我的問題: 在我開始使用OnLongClickListener之前,有沒有更好的方法在列表視圖具有自定義適配器時傳遞「點擊的內容以創建此上下文菜單」信息?當我的列表視圖有一個自定義適配器時,爲什麼MenuItem.AdapterContextMenuInfo爲空?
這裏還有一些細節:
通常情況下,我的代碼可以做這樣的事情:
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
,然後去和快樂。
但是,自從我引入一個自定義適配器後,item.getMenuInfo()就是null。 這是一個大問題,因爲我的代碼不再知道哪個項目被點擊。 (我的自定義適配器使每個列表行一個複選框和一個文本視圖)
我試過,但失敗: 創建了自己的特殊AdapterContextMenuInfo(稱爲「HasAViewMenuInfo」),但是當我通過它在此方法中,它結束了在菜單中被空
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, new HasAViewMenuInfo(v));