首页 > 数据库 >安卓开发五——创建数据库和增加数据

安卓开发五——创建数据库和增加数据

时间:2024-02-03 19:36:23浏览次数:27  
标签:Toast et 创建 安卓 cost sb import android 数据库

复制代码

package com.example.myapplication;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHelper extends SQLiteOpenHelper {

    private static int DB_VERSION = 1;
    private static String DB_NAME = "account_daily2.db";

    public DBHelper(Context context) {
        super(context, DB_NAME ,null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql="create table account2(_id integer primary key autoincrement," +//主键
                "Se varchar(20),"+//
                "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) {

    }
}
复制代码

我们要存入数据首先得有对象和视图中的数据绑定在一起。

之后我们在点击时需要将获取的数据存入数据库中。

复制代码
package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.text.Spanned;
import android.view.Gravity;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import java.text.SimpleDateFormat;
import java.util.Date;

public class new_cost extends AppCompatActivity {
    private DBHelper helper;
    private Spinner et_cost_se;
    private EditText et_cost_title;
    private EditText et_cost_money;
    private DatePicker dp_cost_date;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new_cost);
        initView();
    }

    private void initView() {
        helper = new DBHelper(new_cost.this);
        et_cost_se=findViewById(R.id.spin);
        et_cost_title = findViewById(R.id.et_cost_title);
        et_cost_money = findViewById(R.id.et_cost_money);
        dp_cost_date = findViewById(R.id.dp_cost_date);

    }


    public void okButton(View view) {
        String seStr=et_cost_se.getSelectedItem().toString();
        String titleStr = et_cost_title.getText().toString().trim();
        String moneyStr = et_cost_money.getText().toString().trim();
        String dateStr = dp_cost_date.getYear() + "-" + (dp_cost_date.getMonth() + 1) + "-"
                + dp_cost_date.getDayOfMonth();//这里getMonth会比当前月份少一个月,所以要+1
        if ("".equals(moneyStr)) {//可以不填写Title但是不能不填金额
            Toast toast = Toast.makeText(this, "请填写金额", Toast.LENGTH_SHORT);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show();
        } else {
            if(seStr.equals("收入"))
            {
                StringBuilder sb = new StringBuilder(moneyStr);
                sb.insert(0, "+");
                moneyStr=sb.toString();
            }
            else {
                StringBuilder sb = new StringBuilder(moneyStr);
                sb.insert(0, "-");
                moneyStr=sb.toString();
            }
            String[] strArr1=dateStr.split("-");
            if(strArr1[1].length()==1)//保证日期格式对齐
            {
                StringBuilder sb = new StringBuilder(strArr1[1]);
                sb.insert(0, "0");
                dateStr=strArr1[0]+"-"+sb.toString();
            }
            StringBuilder sb = new StringBuilder(strArr1[2]);
            if(strArr1[2].length()==1)
            {
                sb.insert(0, "0");
            }
            dateStr=dateStr+"-"+sb.toString();
            SQLiteDatabase db = helper.getWritableDatabase();
            ContentValues values = new ContentValues();
            values.put("Se",seStr);
            values.put("Title", titleStr);
            values.put("Money", moneyStr);
            values.put("Date", dateStr);
            long account = db.insert("account2", null, values);
            if (account > 0) {
                Toast toast = Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
                setResult(1);
                finish();
            } else {
                Toast toast = Toast.makeText(this, "请重试", Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
                db.close();
            }
            setResult(1);
            finish();
        }

    }
}
复制代码

这里将收入100元显示成+100,支出100元显示成-100。

时间的格式统一设置为xxxx-xx-xx的格式

标签:Toast,et,创建,安卓,cost,sb,import,android,数据库
From: https://www.cnblogs.com/zhenaifen/p/17994630

相关文章

  • 安卓开发四——账本基本页面
    账本基本页面就是一个添加页面,一个浏览页面,浏览页面的一条数据项是一个视图。<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto&quo......
  • 安卓开发十——调试设置应用图标和源代码
    我们要设置图标和名称只需要修改这三个值就就可以了android:icon="@drawable/appimag"android:label="记账本"android:roundIcon="@drawable/appimag"然后最后的效果是这样的    源代码:<?xmlversion="1.0"encoding="utf-8&......
  • 安卓开发九——长按删除记录和定时刷新页面
    这里我们完成了账本条目数据的查看方法和账本条目的添加,但是当我们发现账本的数据有错误是,我们目前还不能删除。于是我们接下来要完成条目的删除的功能。这里我们在查看某个的账本的明细的页面来操作,我这里采用设置长按下删除。listView.setOnItemLongClickListener(new......
  • 安卓开发二——项目内容和页面跳转
     创建一个初始目录后会又以下的几个文件目录manifests中有一个Androidmanifests.xml的文件它包含了我们这个软件的图标、名字等的基本信息 其中的activity标签中是我们的app所要使用的页面的注册信息 Java的文件目录中我们主要使用的就是第一个文件目录,其中的Java代码包......
  • 安卓开发1——安装Android studio
    去网上找Android的studio1的下载教程找到对应的下载链接,下载 因为我有安装完成后就把下载的软件安装的文件删除的习惯所以就不展示了具体的安装教程可以看AndroidStudio安装配置教程-Windows(详细版)-CSDN博客 安装后新建项目完成后在最右侧的第三个可以挑选自己安卓......
  • Spring Boot无需Dockerfile创建Docker镜像三种方法
    SpringBoot无需Dockerfile创建Docker镜像三种方法        随着技术的发展,服务于终端用户请求的应用程序的部署方式也发生了变化。传统上,你需要用一台机器来部署应用程序,然后决定机器的配置,以保证应用程序的运行。容器的引入,即把整个软件堆栈打包成一个单一的实体并进......
  • 创建表并且迁移表数据的SQL
    --创建目标表CREATETABLEtarget_table(idINTPRIMARYKEY,nameVARCHAR(50),ageINT);--迁移表数据到目标表INSERTINTOtarget_table(id,name,age)SELECTid,name,ageFROMsource_table;这里使用CREATETABLE创建了一个名为target_table的目......
  • 金蝶云星空创建普通动态表单
    ##动态表单的种类 ##动态表单与单据的区别单据本质上也是动态表单,只不过单据更多的是用来保存业务数据,而普通的动态表单是用来显示内容,可以简单的理解动态表单就是一个界面。另,单据的实体有对应的表,而动态表单没有。##新建普通动态表单业务需求:售后单明细点击按钮,弹出动......
  • 金蝶云星空BOS界面修改文本长度后,无法同时修改数据库
     业务背景文本长度默认255不够用,过长截断。 操作BOS签出元数据,修改长度为1000,保存   查询数据库发现长度没有跟随BOS配置 只能手工执行了数据库执行脚本,即可解决问题--sqlserver修改字段长度ALTERTABLET_STK_MISCELLANEOUSALTERCOLUMNFNOTEnvarch......
  • 金蝶云星空数据库根据仓库和仓位查询内码(SQL脚本)
    SELECTa.仓库ID,a.仓库名称,d.仓位ID,d.仓位名称,c.内码FROM(SELECTa.FSTOCKID'仓库ID',b.FNAME'仓库名称'FROMT_BD_STOCKaINN......