zoukankan      html  css  js  c++  java
  • 进度3_家庭记账本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()方法升级数据库,并更新版本号。

  • 相关阅读:
    jar与war包区别,转自https://www.jianshu.com/p/3b5c45e8e5bd
    关于spring
    关于 SQL 的操作
    IDEA 创建一个完整maven项目
    用 eclipse 生成 maven 项目快速生成 web.xml 文件
    Spring拦截器中@Value无效的解决办法
    错误:java.lang.IllegalArgumentException: An invalid character [34] was present in the Cookie value
    错误:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources (default-resources) on project sea rch-zk-increment-monitor: Mark invalid -> [Help 1]
    错误:Caused by: org.apache.http.conn.ConnectTimeoutException: Connect to localhost:8761 timed out
    关于 Spring 的示例
  • 原文地址:https://www.cnblogs.com/hhjing/p/12284837.html
Copyright © 2011-2022 走看看