listview中長按彈出操作菜單,菜單中實現SQLite增刪改查操作,這時候就需要onItemLongClick和onCreateContextMenu搭配使用。
通過onItemLongClick獲取ID等字段,再通過onCreateContextMenu實現菜單操作。
實現代碼如下:
//添加長按事件,獲取 item ID
list.setOnItemLongClickListener(new OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
cursor.moveToFirst();
for(int i=0;i<arg2;i++)
cursor.moveToNext();
str=cursor.getString(0);//ID傳到後面,長按操作使用
return false; //如果onItemLongClick返回false,則會繼續執行OnCreateContextMenuListener函數,否則返回true,忽略OnCreateContextMenuListener函數。
}
});
//添加長按事件,彈出操作菜單
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
// @Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
menu.setHeaderTitle("數據操作");
menu.add(0, 0, 0, "增加");
menu.add(0, 1, 0, "刪除");
menu.add(0, 2, 0, "修改");
}
});
}
//listview中長按菜單響應函數
@Override
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId())
{
/*
* 詳細信息
*/
case 0:
//代碼段
break;
/*
* 刪除操作
*/
case 1:
//代碼段
break;
/*
* 修改操作
*/
case 2: break;}return super.onContextItemSelected(item);}