您的位置:首页 > 移动开发 > Android开发

Android--数据库的增删改查之数据库的更新删除

2016-07-26 16:51 621 查看
长按某个号码后会出现更新和删除的操作,如图所示



当选择更新时会出现如图所示文本框



当选择删除时会出现提示对话框



在删除和更新之前先写一个长按菜单

该菜单是对listView就行操作的,对listView进行监听

lv_show.setOnCreateContextMenuListener(this);然后重写方法onCreateContextMenu方法
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
//添加列表项
menu.add(0, 1, 0, "更新");
menu.add(0, 2, 0, "删除");
//得到长按的position
AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
position = info.position;
super.onCreateContextMenu(menu, v, menuInfo);
}

对这两个选项进行选择
@Override
public boolean onContextItemSelected(MenuItem item) {
final number number = data.get(position);

switch(item.getItemId()) {

case 1:
updateBlackNumber(number);
break;
case 2:
//对话框
new AlertDialog.Builder(this)
.setTitle("删除黑名单")
.setMessage("确定删除这条消息吗?")
.setNegativeButton("取消", null)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//删除数据表
ado.deletenumber(number.get_id());
//删除数据list
data.remove(position);
//更新
adapter.notifyDataSetChanged();
}
})
.show();

break;
default:

break;
}
return super.onContextItemSelected(item);
}

接着是更新的方法的实现
//更新号码
private void updateBlackNumber(final number number) {
final EditText editText = new EditText(this);
editText.setText(number.getNumber());
new AlertDialog.Builder(this)
.setTitle("更新这个号码")
.setView(editText)
.setNegativeButton("取消", null)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
boolean flag = true;

//更新list
String newnumber = editText.getText().toString();
List<number> list = ado.select();
for (int i=0;i<list.size();i++) {
if(list.get(i).getNumber().equals(newnumber)) {
flag=false;
}
}

if(flag) {
number.setNumber(newnumber);

//更新数据表
ado.updatenumber(number);

//更新
adapter.notifyDataSetChanged();
}else {
Toast.makeText(MainActivity.this, "已经有该号码了", 1).show();
}

}
})
.show();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: