... ...
//步驟1:向ListView註冊Context Menu,當系統檢測到用戶長按某單元是,觸發Context Menu彈出
registerForContextMenu(getListView());
}
// 步驟2:創建ContextMenu同OptionMenu,用戶長按元素後,會彈出菜單
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.add(Menu.NONE,DELETE_ID,Menu.NONE,"Delete");
super.onCreateContextMenu(menu, v, menuInfo);
}
//步驟 3: ContextMenu的觸發操作,例子將觸發delete()
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()){
case DELETE_ID:
/* 在此處,我們關鍵引入
AdapterView.AdapterContextMenuInfo來獲取單元的信息。在有三個重要的信息。 1、id:The row id of
the item for which the context menu is being displayed
,在cursorAdaptor中,實際就是表格的_id序號; 2、position
是list的元素的順序;3、view就可以獲得list中點擊元素的View,通過view可以獲取裏面的顯示的信息 */
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
delete(info.id);
return true;
default:
break;
}
return super.onContextItemSelected(item);
}