上次我们为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/数据库名称/表名

 

eatwhatApp开发实战(五)的更多相关文章

  1. [原创].NET 分布式架构开发实战五 Framework改进篇

    原文:[原创].NET 分布式架构开发实战五 Framework改进篇 .NET 分布式架构开发实战五 Framework改进篇 前言:本来打算这篇文章来写DAL的重构的,现在计划有点改变.之前的文章 ...

  2. eatwhatApp开发实战(三)

    在实战二中我们在eatwhatApp上增加了“添加店铺的功能”.接下来,我们来将添加的店铺显示出来,这里我们用到控件--ListView. 先上演示图: 首先,我们先设置布局: <Relativ ...

  3. eatwhatApp开发实战(二)

    上期,我们做了个小app“eatwhat”,接下来每期都会为其添加新的功能.本期,我们为店铺增加添加店铺的功能. 还是先设置个布局: <RelativeLayout android:layout ...

  4. eatwhatApp开发实战(一)

    开发背景: 当你想用抛硬币来决定事情的时候,那么硬币抛起的瞬间,你就有答案了.一样的,吃啥?eatwhat点开,按钮一点,你就可以知道你中午要吃啥. 话不多说,项目开发走起 ADT点开,New==&g ...

  5. eatwhatApp开发实战(十四)

    之前我们就输入框EditText做了优化,而这次,我们为app添加拨打电话的功能. 首先是布局,将activity_shop_info.xml中对应的电话那一栏进行重新设计: <Relative ...

  6. eatwhatApp开发实战(十三)

    这次内容,我们就项目中添加商店名称的EditText进行修改,让添加按钮随着edittext的内容而改变. 上代码,首先是xml文件上对两个控件的修改: <RelativeLayout andr ...

  7. eatwhatApp开发实战(十二)

    上次我们介绍了跳转activity并且实现传值的功能,今天我们来实现双击返回键退出app的功能,上代码: 这里我们有两种方式去实现点击事件: 第一种方式: /** * 返回键的监听(系统提供的) */ ...

  8. eatwhatApp开发实战(十一)

    之前我们实现了点击item项跳转activity,接下来我们再其基础上添加参数的传递. 在MainActivity里面的onItemClick()中: String name = shopList.g ...

  9. eatwhatApp开发实战(十)

    android应用中,很少有一个activity的app,这次我们设置一个activity,通过listview的点击跳转并显示对应的商店信息. 首先创建类ShopInfoActivity,对应设置其 ...

随机推荐

  1. USACO Training Section 1.1黑色星期五Friday the Thirteenth

    题目描述 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至1900+N- ...

  2. 获取Wi-Fi的SSID

    前几天做项目的时候,碰到一个问题,获取wifi的SSID,其实就是获取Wi-Fi的名字 iOS12以前 在iOS13之前获取wifi的SSID很简单,苹果提供了接口CNCopyCurrentNetwo ...

  3. spark系列-3、缓存、共享变量

    一.persist  和 unpersist 1.1.persist() : 用来设置RDD的存储级别 存储级别 意义 MEMORY_ONLY 将RDD作为反序列化的的对象存储JVM中.如果RDD不能 ...

  4. MySQL导出数据到文件中的方法

    MySQL导出数据到文件中的方法 1.导出数据到txt文件中实例:把数据表studscoreinfo中所有数据导出到指定的位置方法:select * from 表名 into outfile 指定导出 ...

  5. andorid jar/库源码解析之okio

    目录:andorid jar/库源码解析 Okio: 作用: 说白了,就是一个IO库,基于java原生io.来进行操作,内部做了优化,简洁,高效.所以受到了一部分人的喜欢和使用 栗子: 读写文件. p ...

  6. Shell脚本(二)数学运算

    直接上代码. #!/bin/bash no1= no2= echo "using let ..." let result=no1+no2 echo "result is: ...

  7. SQLite使用(一)

    简单介绍SQLite常用API: int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **p ...

  8. E - Help Jimmy POJ - 1661 dp

    E - Help Jimmy POJ - 1661 这个题目本身不是很难,但是可以更加优化这个写法. 开始是n*n #include <cstdio> #include <cstri ...

  9. F - Watching Fireworks is Fun

    C. Watching Fireworks is Fun 题目大意: 一个城镇有n个区域,从左到右1-n,每个区域之间距离1个单位距离.节日中有m个烟火要放,给定放的地点a[ i ].时间t[ i ] ...

  10. kafka学习 之 简介

    文章目录 [Topics and Logs](http://kafka.apache.org/intro#intro_topics): Distribution: Producers: Consume ...