• Android Studio--家庭记账本(五)


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

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

  • 相关阅读:
    filter函数和map函数
    生成器面试题
    装饰器激活生成器
    移动平均値
    send()方法的初识
    监听文件的输入
    迭代器抛出异常处理方法
    装饰器-wraps
    多个装饰器装饰一个函数
    WebView 安卓原生java与h5,js交互
  • 原文地址:https://www.cnblogs.com/xhj1074376195/p/12307762.html
Copyright © 2020-2023  润新知