2.20简易记账本四
搭建数据库
首先创建一个DBHelper类
package com.example.myaccountapp; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import androidx.annotation.Nullable; public class DBHelper extends SQLiteOpenHelper { private static int DB_VERSION = 1; private static String DB_NAME = "account_daily.db"; public DBHelper(Context context) { super(context, DB_NAME ,null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String sql="create table account(_id integer primary key autoincrement," +//主键 "Title varchar(20)," +//Title "Date varchar(20)," +//Date "Money vaechar(20))";//Money db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } }
然后我们写一个类专门存放赋值和取出这些数据的方法,命名为costList
package com.example.myaccountapp; public class costList { private String _id; private String Title; private String Date; private String Money; public String getMoney() { return Money; } public void setMoney(String money) { Money = money; } public String getDate() { return Date; } public void setDate(String date) { Date = date; } public String getTitle() { return Title; } public void setTitle(String title) { Title = title; } public String get_id() { return _id; } public void set_id(String _id) { this._id = _id; } }
来到MainActivity开始写方法
package com.example.myaccountapp; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.BaseAdapter; import android.widget.ImageButton; import android.widget.ListView; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class MainActivity extends AppCompatActivity { private DBHelper helper; private ListView listView; private ImageButton Add; private List<costList>list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); } //初始化 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(MainActivity.this); listView = findViewById(R.id.list_view); Add=findViewById(R.id.add); } //事件:添加 public void addAccount(View view){//跳转 Intent intent=new Intent(MainActivity.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(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!