Android实验四_第1页
Android实验四_第2页
Android实验四_第3页
Android实验四_第4页
Android实验四_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机科学与技术系计算机科学与技术系 实实 验验 报报 告告 专业名称 计算机科学与技术 课程名称 Android 应用程序开发 项目名称 数据存储与访问 班 级计科 1 班 学 号 姓 名 同组人员 无 实验日期 2016 9 27 2 一 实验目的与要求 一 实验目的与要求 1 1 实验目的 掌握 SQLite 存储数据的方法 掌握 ContentProvider 的用法 1 2 实验要求 1 练习使用 SQLite 数据库的方式进行数据存储和访问 2 练习使用 ContentProvider 访问其他应用程序的数据 3 完成实验报告 二 实验内容二 实验内容 2 1 实验原理 1 数据存储方式 SharedPreferences File 存储 SQLite 数据库 2 ContentProvider 数据共享 在创建 ContentProvider 前 首先要实现底层的数据源 数据源包括数据库 文件系统或网络等 然后继承 ContentProvider 类中实现基本数据操作的接口函 数 包括添加 删除 查找和更新等功能 调用者不能直接调用 ContentProvider 的接口函数 而需要使用 ContentResolver 对象 通过 URI 间接 调用 ContentProvider 调用关系如图 ContentResolverContentProvider 文件系统数据库网络 URI 2 2 实验过程及截图 1 新建 Android 应用程序项目 SQLiteTest 创建 SQLite 数据库和表 并实现数据库数据读取和存入操作 3 1 新建 SQLiteTest 项目 2 代码逻辑 MainActivity java 文件 package edu hfuu sqlitetest import android app Activity import android database Cursor import android database sqlite SQLiteDatabase import android os Bundle import android view View import android widget Button import android widget EditText import android widget Toast public class MainActivity extends Activity SQLiteDatabase sld sdtest Button bt open bt close bt add bt delete bt update bt query EditText et log et query Override protected void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout activity main 4 bt open Button findViewById R id Button01 bt close Button findViewById R id Button02 bt add Button findViewById R id Button03 bt delete Button findViewById R id Button04 bt update Button findViewById R id Button05 bt query Button findViewById R id Button06 et log EditText this findViewById R id EditText01 et query EditText this findViewById R id EditText02 创建 打开数据库 public void createDatabase View v try sdtest openOrCreateDatabase dbtest db3 MODE PRIVATE null sld SQLiteDatabase openOrCreateDatabase this getFilesDir toString mydb db3 null appendMessage et log 数据库已经成功打开 String sql create table if not exists student sid integer primary key autoincrement sno char 5 stuname varchar 20 sage integer sld execSQL sql appendMessage et log student已经成功创建 catch Exception e Toast makeText this 数据库错误 e toString 5 Toast LENGTH SHORT show 关闭数据库 public void closeDatabase View v try sld close sdtest close appendMessage et log 数据库已经成功关闭 catch Exception e Toast makeText this 数据库错误 e toString Toast LENGTH SHORT show 插入记录的方法 public void insert View v try String sql insert into student values null 10001 Jarry 23 sld execSQL sql appendMessage et log 成功插入一条记录 catch Exception e Toast makeText this 数据库错误 e toString Toast LENGTH SHORT show 6 删除记录的方法 public void delete View v try String sql delete from student sld execSQL sql appendMessage et log 成功删除所有记录 catch Exception e Toast makeText this 数据库错误 e toString Toast LENGTH SHORT show 修改记录的方法 public void update View v try String sql update student set stuname Tom sld execSQL sql appendMessage et log 成功更新记录 catch Exception e Toast makeText this 数据库错误 e toString Toast LENGTH SHORT show 查询的方法 7 public void query View v try String sql select from student where sage Cursor cur sld rawQuery sql new String 20 addMessage et query 序号 t t学号 t t姓名 t t年龄 while cur moveToNext int sid cur getInt 0 String sno cur getString 1 String sname cur getString 2 int sage cur getInt 3 appendMessage et query sid t t sno t t sname t t sage cur close catch Exception e Toast makeText this 数据库错误 e toString Toast LENGTH SHORT show 向文本区中添加文本 public void appendMessage EditText et String msg et append msg n 8 public void addMessage EditText et String msg et setText msg n 3 布局文件 activity main xml 文件 10 4 实验结果 运行项目后 打开数据库 插入记录并查询 11 修改记录 12 删除记录并关闭数据库 13 2 实现通过 ContentResolver 读取应用程序 SQLiteTest 中数据的功能 1 在 SQLiteTest 程序中添加 ContentProvider 提供数据访问接口 a 新建 Java 文件 MyContentProvider java 继承自 ContentProvider 类 代码如下 package edu hfuu sqlitetest import android content ContentProvider import android content ContentValues import android content UriMatcher import android database Cursor import android database sqlite SQLiteDatabase import Uri public class MyContentProvider extends ContentProvider private static final UriMatcher um static um new UriMatcher UriMatcher NO MATCH um addURI edu hfuu provider student stu 1 SQLiteDatabase sld Override public String getType Uri uri return null Override public Cursor query Uri uri String projection String selection String selectionArgs String sortOrder switch um match uri case 1 Cursor cur sld query 14 student projection selection selectionArgs null null sortOrder return cur return null Override public int delete Uri arg0 String arg1 String arg2 TODO Auto generated method stub return 0 Override public Uri insert Uri uri ContentValues values TODO Auto generated method stub return null Override public boolean onCreate sld SQLiteDatabase openOrCreateDatabase getContext g etFilesDir getPath mydb db3 数据库所在路径 null CursorFactory return false 15 Override public int update Uri uri ContentValues values String selection String selectionArgs TODO Auto generated method stub return 0 b 在 AndroidManifest xml 中注册该 ContentProvider 16 2 新建 ContentResolverTest 项目 通过 ContentResolver 接口读取 SQLiteTest 程序数据库中的数据 a MainActivity java 代码如下 package edu hfuu contentresolvertest import android app Activity import android content ContentResolver import android database Cursor import Uri import android os Bundle import android view View 17 import android view View OnClickListener import android widget Button import android widget EditText public class MainActivity extends Activity ContentResolver cr Override public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout activity main cr this getContentResolver 初始化查询按钮 Button b Button this findViewById R id Button01 b setOnClickListener new OnClickListener Override public void onClick View v EditText et EditText findViewById R id EditText01 String stuname et getText toString trim Cursor cur cr query Uri parse content edu hfuu provider student stu new String sid sno stuname sage stuname new String stuname sage ASC 18 appendMessage 序号 t t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论