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