android流水App(记账本)--数据库实现多功能

本文介绍了一个Android记账应用的开发,通过数据库实现了登录数据存储、流水记录的添加与删除等功能。详细讨论了Java代码部分,包括account_listview、BundleActivity、costList、DBHelper、ListAdapter、MainActivity和new_cost等类的实现。同时,概述了各布局文件的代码,如activity_main.xml、activity_account_listview.xml、list_item.xml、activity_new_cost.xml和activity_bundle.xml,展示了应用的用户界面设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要功能:可以实现数据存储(登录页面);可以实现对数据的添加(添加流水);可以实现删除操作

Java代码部分

1.account_listview.java部分的代码

package com.example.currentaccount;


import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import static android.widget.Toast.LENGTH_LONG;

public class account_listview extends AppCompatActivity {

    private DBHelper helper;
    private ListView listView;
    private ImageButton Add;
    private List<costList> list;
    private ListView list_view;
    private int count = 0;
    private new_cost new_cost = new new_cost();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_account_listview);
        initView();
        initData();
        list_view = findViewById(R.id.list_view);
        list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            //parent 代表listView View 代表 被点击的列表项 position 代表第几个 id 代表列表编号
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(account_listview.this, id+"", Toast.LENGTH_SHORT).show();
                Intent intent = new Intent();
                Bundle bundle = new Bundle();
                bundle.putLong("id",id);
                System.out.println(id);
                intent.putExtras(bundle);
                intent.setClass(account_listview.this,BundleActivity.class);
                startActivity(intent);
            }

        });

//        public void onItemClick(AdapterView<?> arg0, View view, int position,
//        long arg3)
//        4个参数分别对应如下:
//        AdapterView 当前的AdapterView对象,你这里就是ListView
//        View AdapterView所绑定的Adapter的getView方法返回的View
//        int 当前被点击的条目的索引号
//        long AdapterView所绑定的Adapter的getItemId返回的值


//实现长按删除
//
//        list_view.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
//            @Override
//            public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
//                                           int arg2, long arg3) {
 TODO Auto-generated method stub
System.out.println(arg0.getItemAtPosition(arg2).toString());
//                new_cost.delete("account_daily",arg2,null);
//                return false;
//            }
//        });

    }

    //初始化
    private void initData() {
        list = new ArrayList<>();
        SQLiteDatabase db = helper.getReadableDatabase();
        Cursor cursor = db.query("account", null, null, null, null,
                null, null);
        while (cursor.moveToNext()) {
            costList clist = new costList();//构造实例
            clist.set_id(cursor.getString(cursor.getColumnIndex("_id")));
            clist.setTitle(cursor.getString(cursor.getColumnIndex("Title")));
            clist.setDate(cursor.getString(cursor.getColumnIndex("Date")));
            clist.setMoney(cursor.getString(cursor.getColumnIndex("Money")));
            list.add(clist);
        }
        //绑定适配器
        listView.setAdapter(new ListAdapter(this, list));
        db.close();
    }


    private void initView() {
        helper = new DBHelper(account_listview.this);
        listView = findViewById(R.id.list_view);
        Add = findViewById(R.id.add);
    }

    //事件:添加
    public void addAccount(View view) {//跳转
        Intent intent = new Intent(account_listview.this, new_cost.class);
        startActivityForResult(intent, 1);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1 && resultCode == 1) {
            this.initData();
        }
    }

}

2. BundleActivity.java 部分的代码

package com.example.currentaccount;

import androidx.appcompat.app.AppCompatActivity;
import com.example.currentaccount.DBHelper;

import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class BundleActivity extends AppCompatActivity {
    DBHelper db = null;
    SQLiteDatabase sd = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        db = new DBHelper(getApplicationContext());
        sd = db.getReadableDatabase();
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bundle);
    }
    public void delete(View v){
        Bundle bundle = new Bundle();
        Long id = bundle.getLong("id");
        id+=1;
        String sql = "delete from account where _id='"+id+"'";
        sd.execSQL(sql);
        Toast.makeText(this,"删除成功",Toast.LENGTH_SHORT).show();
        Intent intent = new Intent();
        intent.setClass(BundleActivity.this,account_listview.class);
        startActivity(intent);

    }

    public void update(View view) {
        Bundle bundle = new Bundle();
        Long id = bundle.getLong("id");
        id+=1;
        String sql = "delete from account where _id='"+id+"'";
        sd.execSQL(sql);
        Toast.makeText(this,"删除成功",Toast.LENGTH_SHORT).show();
        Intent intent = new Intent();
        intent.setClass(BundleActivity.this,new_cost.class);
        startActivity(intent);

    }
}

3.costList.java部分的代码

package com.example.currentaccount;

public class costList {
    private String _id;
    private String Title;
    private String Date;
    private String Money;

    public String getM
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值