想到每次删除之后将表单自动初始化,却发现会导致除去已经删除的不在出现在表单上,数据库中剩余的数据还会再次出现在表单中。导致表单上的数据越来越多。后来又想到,当我实现删除之后,把表单采用全部清除,再重新初始化。果然这个方法实现了完整的删除与自动更新功能。

public void onClick(DialogInterface dialog, int which) {
CostBean costBean =new CostBean();
costBean.costTitle=title.getText().toString();//将用户输入的删除标题“cost_title”传给costbean.title
mDatabaseHelper.deleteCost(costBean);//删除数据库中数据
mCostBeanList.clear();//清除表单
initCostData();//重新从数据库中初始化表单的数据
mAdapter.notifyDataSetChanged();//刷新表单
}

SQLite数据库删除代码:

public void deleteCost(CostBean costBean){
SQLiteDatabase database=getWritableDatabase();//接受costbean的数据
database.delete(TABLE,"cost_title=?",new String[]{costBean.costTitle});
     //删除表“TABLE”中“cost_title”为new String[]{costBean.costTitle}的数据,即前面传来的cost_title
}

  将收入与支出分开来记,但是都存储在同一数据库中了,就是简单的两个button,在金额前面加上了“+”、“-”  

同时又增加了清除账单的功能,即将数据库中的数据全部清除,当点击清除表单的时候,会跳出对话框,让用户确认是否全部删除。

Button btn_delete_all =findViewById(R.id.btn_delete_all);
btn_delete_all.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mDatabaseHelper.deleteAllData();//需要用到sqlite语句
mCostBeanList.clear();//清除表单
mAdapter.notifyDataSetChanged();
}
});
builder.setNegativeButton("取消",null);
builder.setMessage("确定要清除所有账单吗?");
builder.setTitle("提示");
builder.create().show();
}
});

DatabaseHelper.java里面删除数据库中TABLE

public  void deleteAllData(){
SQLiteDatabase database=getWritableDatabase();
database.delete(TABLE,null,null);
}

Android Studio--家庭记账本(五)的更多相关文章

  1. 【Android】家庭记账本手机版开发报告五

    一.说在前面   昨天  1.添加菜单(查询.清除所有等)2.使用滑动删除   今天 1.创建登入和注册界面 2.向数据库添加一张用户表   问题 做完后在登入时有bug(未解决) 二.界面的搭建 1 ...

  2. 【Android】家庭记账本手机版开发报告一

    一.说在前面 昨天 学习了数据库的一些简单操作 今天 使用数据库,完成对记账本的账单记录的增删 问题 没有 二.数据库 1.账单表的结构 (注 id:账单的唯一标识,uid:记录账单的用户的id,co ...

  3. 【Android】家庭记账本手机版开发报告二

    一.说在前面 昨天 完成了对记账本的账单的增删 今天 完善昨天的框架结构( 1.引入ViewModel管理数据.使MainActive 只管理界面.不再管数据了 2.引入AsyncTask.后台执行. ...

  4. 【Android】家庭记账本手机版开发报告七

    一.说在前面  昨天 实现了账单的图标显示  今天 本地化,测试APP,将工程源码放到github上 源码:https://github.com/xiaotian12-call/Android_Boo ...

  5. 【Android】家庭记账本手机版开发报告六

    一.说在前面  昨天 1.创建登入和注册界面:2.向数据库添加一张用户表  今天 用图标显示账单情况 问题 1.使用第三方库 hellochart,时添加依赖构建失败 2.在 chertFragmen ...

  6. 【Android】家庭记账本手机版开发报告三

    一.说在前面 昨天 对第一天的框架结构进行了四方面的完善 今天 对界面显示和逻辑结构进行完善 问题 无 二.界面展示完善 1.使用可回收的列表recyclerView展示账单的信息,并设置数据项为卡片 ...

  7. Android Studio的使用(五)--导入第三方Jar包

    本篇博文将介绍一下如何导入第三方Jar包. 1.首先将下载的Jar包直接Copy到libs目录下面,然后右击Jar文件,点击Add As Library后,在出现的弹出框点击确定即可. 2.打开bui ...

  8. 【Android】家庭记账本手机版开发报告四

    一.说在前面 昨天 对界面显示和逻辑结构进行完善 今天 1.添加菜单(查询.清除所有等) 2.使用滑动删除 问题 1.在做查询时获取SearchView时引 入包错误经过长时间的尝试后才修正 2.滑动 ...

  9. Android Studio--家庭记账本(六)

    (Android studio家庭记账本源码已上传至github,https://github.com/xhj1074376195/CostBook_app) 今天记账本终于可以算是完成了,实现了账户 ...

  10. [Android Tips] 20. Android Studio Tips

    [译]Android Studio 使用技巧系列(一)-快捷键 [译]Android Studio 使用技巧系列(二)-快捷键 [译]Android Studio 使用技巧系列(三)-调试 [译]An ...

随机推荐

  1. 武汉中科通达软件Java工程师初试总结复盘

       预约的视频面试时间是中午12点,不过面试官并没有准时到,拖了大概5.6分钟吧.Zoom会议上写着xxxJava工程师初试. 面试官戴着口罩,并没有露脸,看起来与我年龄相仿,感觉很年轻. 在我按着 ...

  2. 批量删除当前文件夹下面的.svn文件夹

    for /r . %%a in (.) do @if exist "%%a\.svn" rd /s /q "%%a\.svn 使用方法: 新建text文档,复制上面的文本 ...

  3. python 并发 ThreadPoolExecutor

    正文:Executor是一个抽象类,子类: ThreadPoolExecutor和ProcessPoolExecutor ,一个线程池,一个进程池. future对象:在未来的某一时刻完成操作的对象. ...

  4. 数据可视化之 图表篇(一)Power BI可视化,几张图表认识疫情现状

    ​近期国际疫情愈演愈烈,在这个特殊的时期,一方面仍要照顾好自己.不要为疫情防治添乱,另一方面,也可以利用疫情数据提升自己的数据分析和可视化技能. 下面是我制作的几个可视化图表,分别注释了每个可视化用到 ...

  5. ShaderLab-12chapter屏幕后处理、图片置灰效果

    屏幕后处理的原理 使用特定的材质去渲染对应相机近裁剪平面的4边形面片(刚好填充屏幕) 亮度-Luminance公式 --扩展置灰实现 luminance = 0.2125 * Red + 0.7154 ...

  6. CCNA-Part4 -网络层 - IP 协议了解一下

    网络层主要提供寻址,路由的功能.而 IP 协议就是为了实现该功能而设计的. IP 协议 IP 协议的特性 工作在网络层 面向无连接的协议 具有单独处理包的能力 分层的地址 不可靠,尽力而为的传送 独立 ...

  7. Python Ethical Hacking - VULNERABILITY SCANNER(4)

    Extracting & Submitting Forms Automatically Target website:http://10.0.0.45/dvwa/vulnerabilities ...

  8. 如何看待HTTP/3

    前言 HTTP/2 相比于 HTTP/1.1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何优雅降级应该是国内还不普遍使用的原因之一. ...

  9. 一起学Blazor WebAssembly 开发(3)

    接着上篇,本篇开始讲下实现登录窗口,先看下大概的效果图: 打开的效果,没有美工美化 点登录校验得到不能为空 我在做blazor时用到了一个ui框架,这个框架名叫Ant Design blazor(ht ...

  10. Java基础之(IO流)

    简介: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. 一.File ...