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()方法升级数据库,并更新版本号。

最新文章

  1. SharePoint 2013 搜索功能,列表项目不能完全被索引
  2. cocos2dx音乐与音效
  3. Asp.net mvc + .net ef database first 或 model first 时如何添加验证特性
  4. memcached+php客户端
  5. Android 实现书籍翻页效果----完结篇
  6. javaweb学习总结十九(http协议概述以及http请求信息分析)
  7. velocity properties
  8. C# 2 运算符 if
  9. PHP 单列模式实例讲解以及参考网址
  10. Android imageView图片按比例缩放
  11. POI不同版本替换Word模板时的问题
  12. 前端开发掌握nginx常用功能之server&location匹配规则
  13. mesh函数
  14. 十三、u-boot 调试-- NOR FLASH 支持
  15. linux部署的flask项目配置static
  16. SQL Server中的数据类型
  17. 使用python中的matplotlib 画图,show后关闭窗口,继续运行命令
  18. Vue中CSS模块化最佳实践
  19. Mybatis 不同使用方式
  20. Linux运维之--LVS、Nginx、HAproxy有什么区别?

热门文章

  1. HiBench成长笔记——(9) 分析源码monitor.py
  2. Ubuntu 更新源 内核升级
  3. 1 初识JVM
  4. eshop4-tomcat 安装
  5. c# quartz
  6. mybaits-plus总结
  7. Day 27:Xpath技术
  8. 软件包管理:RPM包管理-yum在线管理
  9. P1011 A+B 和 C
  10. HYSBZ - 1588 营业额统计 (伸展树)