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

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM