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);}