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