上次我们为eatwhat添加了了删除功能和dialog对话框的介绍,今天我们来使用SQLite进行本地数据存储。

  首先,我们定义一个SQL辅助类ShopInfoOpenHelper继承SQLiteOpenHelper。

public class ShopInfoOpenHelper extends SQLiteOpenHelper {

	public ShopInfoOpenHelper(Context context, String name,
CursorFactory factory, int version,
DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
// TODO Auto-generated constructor stub
} @Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub } @Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub } }

  在构造方法ShopInfoOpenHelper中配置上下文环境、数据库名称、版本号游标工厂默认设置null。

  

	public ShopInfoOpenHelper(Context context) {

		super(context, "shop_info.db", null, 1);
}

  在OnCreate中创建表shopinfo:主键_id,字段shopName。

	public void onCreate(SQLiteDatabase db) {

		db.execSQL("create table shopinfo(_id integer primary key autoincrement,shopName char(20))");
}

  MainActivity中声明数据库和辅助类。在init()方法中声明createOrOpenDataBase()方法。

	// 数据库创建
private SQLiteDatabase db;
// openHelper辅助类
private ShopInfoOpenHelper mOpenHelper;

  该方法体内初始化辅助类openhelper,创建或者打开数据库:

	private void createOrOpenDataBase() {

		mOpenHelper = new ShopInfoOpenHelper(MainActivity.this);

		//如果数据库不存在 则创建可读写的数据库 ,如果创建了 则直接打开
db = mOpenHelper.getWritableDatabase();
}

  声明方法addLocalData(Shop shop):

	private void addLocalData(Shop shop) {

		//存储的机制,只能存储基本类型的数据,像string、int之类。
ContentValues values = new ContentValues();
values.put("shopName",shop.getName());
         //shopinfo中插入数据
db.insert("shopinfo", null, values);
}

  在添加按钮的逻辑中调用此方法:

  // List shop添加店名
  Shop shop = new Shop(addName);
  // 添加新实例化的shop对象
  shopList.add(shop);
  // 刷新listview
  shopAdapter.notifyDataSetChanged();
  // 添加到本地数据
  addLocalData(shop);

  测试结果,真机测试需ROOT后通过rootexplorer等软件进行查找,路径:data/data/包名/databases/数据库名称/表名

 

最新文章

  1. Android开发学习之路-使用annotationProcessor配置Butterknife
  2. Mysql字符集设置
  3. postgres中的视图和物化视图
  4. iOS之类的本质
  5. 使用Python xlwt写excel文件
  6. XML入门级的简单学习
  7. 网狐6603棋牌游戏源码.rar
  8. snmp getTable demo :iftable ipAddresstable
  9. Elasticsearch搜索类型(query type)详解
  10. 【HDOJ】1198 Farm Irrigation
  11. 设计模式之—简单工厂模式<Simple Factory Pattern >
  12. Tomcat6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
  13. poj 2411 Mondriaan's Dream 【dp】
  14. Android在应用中依据包名启动另外一个APP
  15. 条件随机场 Conditional Random Fields
  16. java 二维码解析和生成
  17. 移动端300ms与点透总结
  18. springboot情操陶冶-初识springboot
  19. 【XSY2887】【GDOI2018】小学生图论题 分治FFT 多项式exp
  20. centos7搭建gitlab服务器、汉化

热门文章

  1. 洛谷2014 选课(树形DP)树形背包问题
  2. redis系列之4----redis高级应用(集群搭建、集群分区原理、集群操作)
  3. C. Jury Marks 思维
  4. spring data jpa 多对多 ManyToMany
  5. python语法学习第六天--集合
  6. Mybatis 快速入门(XML方式)第一天
  7. iOS事件的响应和传递机制
  8. transition完成事件
  9. node的http模块
  10. CSS3面试题