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();
}
当选择更新时会出现如图所示文本框
当选择删除时会出现提示对话框
在删除和更新之前先写一个长按菜单
该菜单是对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();
}
相关文章推荐
- 修改Android Gradle plugin的aapt路径
- Android 更换新logo图标后,运行项目图标没有变化的bug
- Android事件分发机制详解
- 改变AlertDialog的大小
- Android工具类
- Android 系统默认铃声修改
- Android 开发中的一些快捷键和实用网址
- 更新 Android 5.x (Lollipop) 之后的 framework/services.jar
- android测试类Test
- Android内容覆盖透明状态栏下实现全屏模式下带状态栏的效果
- 通过广播启动另一个应用的Activity
- 谈Android模拟点击的价值和实现
- Android--数据库的增删改查之数据库的增加
- 【Android】—— DDMS开发工具获取ROOT权限查看手机文件、导出数据库文件等
- Android Studio Error—Gradle: 错误:编码 GBK 的不可映射字符的
- Android编程之通知---Notification
- 如何调试Android Framework?
- Android开发SDK过程中的一些事
- Android 如何判断当前线程是否是主线程
- 搭建Android手机服务器(一)