zoukankan      html  css  js  c++  java
  • 家庭记账本App_Fragment使用SQLite实现简单存储及查询

    AddFragment.java:

    复制代码
    package com.example.familybooks;
    
    import android.content.ContentValues;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    
    import androidx.annotation.Nullable;
    import androidx.fragment.app.Fragment;
    
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.DatePicker;
    import android.widget.EditText;
    import android.widget.Toast;
    
    
    public class AddFragment extends Fragment {
        @Nullable
        String TAG="TAG";
        private EditText costTitle,costMoney;
        private Button btn_go,btn_return;
        private DatePicker costDate;
        private SQLiteDatabase database;
        DatabaseHelper helper;
    
        @Override
        public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
            View view=inflater.inflate(R.layout.activity_add,container,false);
            return view;
        }
    
       public void onActivityCreate(Bundle savedInstanceState){
            super.onActivityCreated(savedInstanceState);
    
            costTitle=(EditText)getActivity().findViewById(R.id.et_costtitle);
            costMoney=(EditText)getActivity().findViewById(R.id.et_costmoney);
            costDate=(DatePicker) getActivity().findViewById(R.id.dp_costdate);
    
            helper=new DatabaseHelper(getActivity(),"account_cost",null,1);
    
            btn_go=(Button)getActivity().findViewById(R.id.btn_go);
            btn_go.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(getActivity(),"accoun_cost",Toast.LENGTH_LONG).show();
                    database=helper.getWritableDatabase();
                    Insert();
    
                    costTitle.setText("");
                    //costDate.setText("");
                    costMoney.setText("");
                    Toast.makeText(getActivity(),"accoun_cost",Toast.LENGTH_LONG).show();
                }
            });
    
            btn_return=(Button)getActivity().findViewById(R.id.btn_return);
            btn_return.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View arg0) {
                    //得到数据库
                    database=helper.getWritableDatabase();
                    //查询数据
                    Query();
    
                    Toast.makeText(getActivity(),"accoun_cost",Toast.LENGTH_LONG).show();
                }
            });
    
       }
       public void Query(){
           Cursor cursor=database.query("account_cost",null,null,null,null,null,null);
           if(cursor.moveToFirst()){
               do{
                   String title=cursor.getString(cursor.getColumnIndex("title"));
                   String date=cursor.getString(cursor.getColumnIndex("date"));
                   String money=cursor.getString(cursor.getColumnIndex("money"));
                   Log.i(TAG,"title:"+title);
                   Log.i(TAG,"date:"+date);
                   Log.i(TAG,"money:"+money);
               }while(cursor.moveToNext());
           }
           cursor.close();
        }
    
        public void Insert(){
            ContentValues values=new ContentValues();
            values.put("title",costTitle.getText().toString());
            values.put("date",costTitle.getText().toString());
            values.put("money",costMoney.getText().toString());
            database.insert("account_cost",null,values);
        }
    }
    复制代码

    DatabaseHelper.java:

    复制代码
    package com.example.familybooks;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    
    import androidx.annotation.Nullable;
    
    public class DatabaseHelper extends SQLiteOpenHelper {
    
        private Context context;
        public DatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
            super(context,"account_daily",null, 1);
            this.context=context;
        }
    
        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL("create table diary(id integer PRIMARY KEY AUTOINCREMENT,"
    
                    +"costTitle text,costDate text,costMoney text)");
    
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
            db.execSQL("drop table if exists diary");
            onCreate(db);
        }
    }
    复制代码

       总结:

          SQLiteOpenHelper是个抽象类,在该类中有如下两个抽象方法,SQLiteOpenHelper的子类必须实现这两个方法。
          public abstract void onCreate(SQLiteDatabase db);
          public abstract void onUpdate(SQLiteDatabase db,int oldVersion,int newVersion);

          如果数据库文件不存在,只有oncreate()被调用(该方法在创建数据库时被调用一次)。

          如果数据库文件存在,会调用onupdate()方法升级数据库,并更新版本号。

  • 相关阅读:
    跨域处理
    intellij idea远程调试
    sring boot特性
    spring mvc与struts2的区别
    jenkins集成sonar
    hibernate笔记
    python脚本
    python 字符框
    python操作
    python环境配置
  • 原文地址:https://www.cnblogs.com/hrzgj/p/14913391.html
Copyright © 2011-2022 走看看