上一篇文章我提到了添加书签,然而添加书签只是添加都数据库的Lable中,还没与用户有所交互,这就需要用到第一轮考核中的listview的控件把Lable表里面的数据放到Activity里面。在这里面就不作详细的介绍。具体可以看回我第一轮考核的listview的介绍。现在就介绍书签的删除的。
我们通常使用的浏览器一般在进入了书签这个Activity里面然后,长安某个书签,就会弹出一个菜单,在这里,我定义的菜单只有简单的删除和取消这两个操作。
一下代码就实现了简单的删除操作。
//添加长按菜单,菜单标题:操作,和两个点击事件,一个删除,另一个取消
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
menu.setHeaderTitle("操作");
menu.add(0, 0, 0, "删除");
menu.add(0, 1, 0, "取消");
}
});
}
//当添加完长按菜单,马上调用该方法
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item .getMenuInfo();
//定义一个变量,返回的数据是你当前点击的item的位置
MID = (int) info.id;
switch (item.getItemId()) {
case 0:
// simpleAdapter.getItem(MID);返回的是一个(Map<String, Object>)类型,通过该类型,获取它的键名,然后取出其值
Map<String, Object> m=(Map<String, Object>)simpleAdapter.getItem(MID);
// 定义一个字符串,接收获取的值
String deleteUrl = (String) m.get("url");
// 定义一个删除的条件,传过Lable的管理类
Object[] params = {deleteUrl};
// 调用数据库Lable的删除语句
service.deleteLable(params);
// 重新加载该页面,从而达到删除后,该item马上从当前Activity消失的效果
Intent intent = new Intent(HistoryListView.this,HistoryListView.class);
startActivity(intent);
// 必须调用finish();的方法,否则上一个Activity一直不销毁,然后当你返回的时候就不断重复之前的Activity
finish();
Toast.makeText(HistoryListView.this, "已删除", Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(HistoryListView.this, "已取消", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return super.onContextItemSelected(item);
}