1:
2: /**
3: * 内容提供者
4: * @author LeoYang
5: */
6: public class TodoListProvider extends ContentProvider {
7:
8: private static final String TAG = TodoListProvider.
class.getSimpleName();
9:
10: //数据库名
11: private static final String DATABASE_NAME =
"todolist.db";
12: //版本
13: private static final
int DATABASE_VERSION = 1;
14: //表名
15: private static final String TABLE_NAME =
"todos";
16: //属性表
17: private static HashMap<String, String> sTodosProjectionMap;
18:
19: private static final
int TODOS = 1;
20: private static final
int TODO_ID = 2;
21:
22: //uri匹配器
23: private static final UriMatcher uriMatcher;
24:
25: private DataBaseHelper dataBaseHelper;
26:
27: static {
28: //数据初始化
29: uriMatcher =
new UriMatcher(UriMatcher.NO_MATCH);
30: uriMatcher.addURI(TodoList.AUTHORITY,
"todos", TODOS);
31: uriMatcher.addURI(TodoList.AUTHORITY,
"todos/#", TODO_ID);
32:
33: sTodosProjectionMap =
new HashMap<String, String>();
34: sTodosProjectionMap.put(Todo._ID, Todo._ID);
35: sTodosProjectionMap.put(Todo.TITLE, Todo.TITLE);
36: sTodosProjectionMap.put(Todo.CONTENT, Todo.CONTENT);
37: sTodosProjectionMap.put(Todo.CREATED_DATE, Todo.CREATED_DATE);
38: sTodosProjectionMap.put(Todo.MODIFIED_DATE, Todo.MODIFIED_DATE);
39: }
40:
41: private static class DataBaseHelper extends SQLiteOpenHelper {
42:
43: public DataBaseHelper(Context context) {
44: super(context, DATABASE_NAME,
null, DATABASE_VERSION);
45: }
46:
47: //创建表
48: @Override
49: public void onCreate(SQLiteDatabase db) {
50: Log.d(TAG,
"create table :" + TABLE_NAME);
51: db.execSQL(
"CREATE TABLE IF NOT EXISTS " + TABLE_NAME +
"(" + Todo._ID +
" INTEGER PRIMARY KEY," + Todo.TITLE
52: +
" TEXT," + Todo.CONTENT +
" TEXT," + Todo.CREATED_DATE +
" INTEGER," + Todo.MODIFIED_DATE
53: +
" INTEGER)");
54: ContentValues values =
new ContentValues();
55: values.put(Todo.TITLE,
"test");
56: values.put(Todo.CONTENT,
"dddddddd");
57: db.insert(TABLE_NAME,
"title", values);
58: }
59:
60: //更新数据库表
61: @Override
62: public void onUpgrade(SQLiteDatabase db,
int oldVersion,
int newVersion) {
63: Log.w(TAG,
"Upgrading database from version " + oldVersion +
" to " + newVersion
64: +
", which will destroy all old data");
65: db.execSQL(
"DROP TABLE IF EXISTS " + TABLE_NAME);
66: onCreate(db);
67: }
68:
69: }
70:
71: //删除数据操作
72: @Override
73: public int delete(Uri uri, String selection, String[] selectionArgs) {
74: SQLiteDatabase db = dataBaseHelper.getWritableDatabase();
75: int count = 0;
76: //判断uri类型
77: switch (uriMatcher.match(uri)) {
78: case TODOS:
79: //如果以"/todo"结尾,则删除整个表数据
80: count = db.delete(TABLE_NAME, selection, selectionArgs);
81: break;
82: case TODO_ID:
83: //如果以“/todo/1”结尾,则删除ID=1的数据
84: String todoId = uri.getPathSegments().get(1);
85: count = db.delete(TABLE_NAME, Todo._ID +
"=" + todoId
86: + ((TextUtils.isEmpty(selection)) ?
"" :
" AND " + selection), selectionArgs);
87: break;
88: default:
89: throw new IllegalArgumentException(
"Unknown URI :" + uri);
90: }
91: getContext().getContentResolver().notifyChange(uri,
null);
92: return count;
93: }
94: ......
95: ......
96: //其他方法省略
相关推荐
第2章 工欲善其事 必先利其器——搭建Android开发环境 2.1 开发Android应用前的准备 2.1.1 Android开发系统要求 2.1.2 Android软件开发包 2.1.3 其他注意事项 2.2 Windows开发环境搭建 2.2.1 JDK、Eclipse、Android...
第2章 工欲善其事 必先利其器——搭建Android开发环境 2.1 开发Android应用前的准备 2.1.1 Android开发系统要求 2.1.2 Android软件开发包 2.1.3 其他注意事项 2.2 Windows开发环境搭建 2.2.1 JDK、Eclipse、Android...
第2章 工欲善其事 必先利其器——搭建android开发环境 7 2.1 开发android应用前的准备 7 2.1.1 android开发系统要求 7 2.1.2 android软件开发包 7 .2.1.3 其他注意事项 8 2.2 windows开发环境搭建...
第2章 工欲善其事 必先利其器——搭建Android开发环境 2.1 开发Android应用前的准备 2.1.1 Android开发系统要求 2.1.2 Android软件开发包 2.1.3 其他注意事项 2.2 Windows开发环境搭建 2.2.1 JDK、Eclipse、Android...
第2章 工欲善其事 必先利其器——搭建Android开发环境 7 2.1 开发Android应用前的准备 7 2.1.1 Android开发系统要求 7 2.1.2 Android软件开发包 7 .2.1.3 其他注意事项 8 2.2 Windows开发环境搭建...
数据安全包含数据库数据安全、SD卡数据(外部存储)安全、RAM数据(内部存储)安全。android中操作数据库可使用SQLiteOpenHelper或ContentProvider的方式。 数据安全包含数据库数据安全、SD卡数据(外部存储)安全、RAM...
2.2 简单数据的存储——preferences 33 2.2.1 preferences简介 33 2.2.2 preferences实现访问时间的记录 33 2.3 手机自带数据库——sqlite 34 2.3.1 初识sqlite 35 2.3.2 sqlite数据库的基本操作 ...
课堂作业实验6源码。利用android的内置数据库SQLite存储新闻信息,用listview组件以列表形式显示新闻内容,
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 ...• SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和...
第2章 Android开发基础Android开发基础,讲述了Android开发环境的搭建、Android常用工具的使用和第一个Android应用程序的开发 第二篇 技术篇第3章 Android中的资源访问Android 中的资源访问,讲述了如何定义和...
第一篇 Android开发初步 第1章 Android初识 1.1 Android简介 1.1.1 认识Android 1.1.2 Android系统框架 1.1.3 应用程序框架 1.2 Eclipse开发环境 1.2.1 安装ADT插件 1.2.2 安装SDK 1.2.3 配置源代码 1.2.4 创建AVD ...
本书是一部关于 android开发的基础教程,采用由浅入深、循序渐进的方式讨论android。书中还结合数独游戏等实例更加形象生动地讲解了 android开发的基本流程,且每章最后都有一个 “快速阅读指南 ”,更加方便了读者...
|--view中的tag用法之存储对象 |--view常用属性 |--xml常用属性 |--xml文件的pull解析与序列化写入 |--xml的封装序列化 |--任务循环之只在Activity显示时执行 |--修改文件的最后修改时间 |--偏好设置(回显) |--内存...
本节给大家介绍的是Android数据存储与访问方式中的一个——文件存储与读写,当然除了这种方式外,我们可以存到SharedPreference,数据库, 或者ContentProvider中,当然这些后面都会讲,嗯,开始本文内容~