- 浏览: 378455 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (269)
- FY_UML (3)
- FY_JAVA (12)
- FY_JavaScript脚本 (7)
- FY_JSP (3)
- FY_Tapestry框架 (12)
- FY_Spring框架 (3)
- FY_Manager (5)
- FY_Junit(单元测试) (3)
- SERVER (14)
- FY_Struts2框架 (3)
- FY_SVN (2)
- FY_NoSQL (2)
- FY_jquery_sir (13)
- FY_hibernate_sir (8)
- FY_设计模式_sir (6)
- FY_Extjs_sir (10)
- FY_CI_sir (5)
- FY_Oracle_sir (11)
- FY_MySql_sir (10)
- FY_Hadoop_sir (3)
- FY_SOA_sir (1)
- 中文分词技术 (1)
- FY_Android (52)
- FY_架构 (2)
- FY_PhoneGap (2)
- FY_Webstorm (5)
- FY_Sencha Touch (3)
- HTML5应用快速开发 (1)
- FY_python (0)
- HADOOP (1)
- AI (0)
最新评论
-
antao592:
楼主,HkDataSourceWrapper中的getCurr ...
结合spring jdbc 实现分表分库的数据库访问构思 -
bonait:
不错,看看我的这个怎么样www.zipin168.com
So Easy京东商城 -
chenzheng8975:
...
So Easy京东商城 -
yzhenxing:
我导入demo后少com.google.android.gms ...
google地图demo -
echoaiya:
非常感谢~~
google地图demo
ch023 Android ContentProvider(第一部分,单元测试)
- 博客分类:
- FY_Android
--------------------------------------------AndroidManifest.xml----------------------------------
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ch23"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- 单元测试包-->
<uses-library android:name="android.test.runner"/>
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 注册ContentProvider -->
<provider android:name=".provider.MyProvider" android:authorities="com.ch23.provider.myprovider"></provider>
</application>
<!-- 单元测试声明 -->
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.ch23"></instrumentation>
</manifest>
--------------------------------------------Layout activity_main.xml-----------------------------
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
--------------------------------------------Activity MainActivity.java-----------------------------
package com.ch23;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
--------------------------------------------DB目录 Const.java-----------------------------------
package com.ch23.db;
/*常量类*/
public class Const {
public final static String CONTENTPROVIDER = "com.ch23.provider.myprovider";
/* Uri C ,代表返回多条数据 */
public final static int STU_LIST = 1;
/* Uri D*,代表返回一条数据 */
public final static int STU_DETAIL = 2;
}
--------------------------------------------DB目录 DBHelper.java-------------------------------
package com.ch23.db;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
*
* 项目名称:com.ch23
* 类名称:DBHelper
* 类描述:数据库操作工具类
* 创建人:方勇
* 创建时间:2012-12-10 下午8:25:47
* Copyright (c) 方勇-版权所有
*/
public class DBHelper {
private static DatabaseHelper databaseHelper;// 数据库定义语言,创建数据库,DDL,定义数据结构
private static SQLiteDatabase db;// 数据库操作对象,DML,数据库操作
private String DATABASE_NAME = "a07.db";
private int DATABASE_VERSION = 1;// 数据库版本,必须赋值
private Context context;// 定义一个上下文对象
/* 构造方法 */
public DBHelper(Context context) {
this.context = context;
}
/* 打开数据库的方法 */
public DBHelper open() {
databaseHelper = new DatabaseHelper(context);
db = databaseHelper.getWritableDatabase();
return this;
}
// 关闭数据库
public void close() {
db.close();
databaseHelper.close();
}
/* 插入数据 */
public long insert(String tableName, ContentValues values) {
return db.insert(tableName, null, values);
}
/* 删除数据 */
public boolean delete(String tableName, String whereClause,
String[] whereArgs) {
return db.delete(tableName, whereClause, whereArgs) > 0;
}
/* 更新数据 */
public boolean update(String tableName, ContentValues values,
String whereClause, String[] whereArgs) {
return db.update(tableName, values, whereClause, whereArgs) > 0;
}
/* 取得一个列表 */
public Cursor findList(String tableName, String[] columns,
String selection, String[] selectionArgs, String groupBy,
String having, String OrderBy) {
return db.query(tableName, columns, selection, selectionArgs, groupBy,
having, OrderBy);
}
/* 取得单行记录 */
public Cursor findInfo(String tableName, String[] columns,
String selection, String[] selectionArgs, String groupBy,
String having, String orderBy) {
Cursor cursor = db.query(tableName, columns, selection, selectionArgs,
groupBy, having, orderBy);
while (cursor.moveToNext()) {
cursor.moveToFirst();
}
return cursor;
}
/* 执行sql语句 */
public void executeSql(String sql) {
db.execSQL(sql);
}
/* SQLiteopenHelper是一个抽象类,来管理数据库的创建和版本的管理 */
private class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// 创建表结构
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists stu(id integer primary key,name text)");
db.execSQL("insert into stu values(1,'a1')");
db.execSQL("insert into stu values(2,'a2')");
db.execSQL("insert into stu values(3,'a3')");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
}
--------------------------------------------provider目录 MyProvider.java-----------------------
package com.ch23.provider;
import com.ch23.db.Const;
import com.ch23.db.DBHelper;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.net.Uri;
/**
*
* 项目名称:com.ch23
* 类名称:MyProvider
* 类描述:对外应用程序提供数据
* 创建人:方勇
* 创建时间:2012-12-10 下午8:26:09
* Copyright (c) 方勇-版权所有
*/
public class MyProvider extends ContentProvider {
/* 数据库操作 */
private DBHelper dbHelper;
/* 匹配工具类 */
private static final UriMatcher MATCHER = new UriMatcher(
UriMatcher.NO_MATCH);
/* 初始化数据,匹配工具类 */
static {
MATCHER.addURI(Const.CONTENTPROVIDER, "stu", Const.STU_LIST);
MATCHER.addURI(Const.CONTENTPROVIDER, "stu/#", Const.STU_DETAIL);
}
@Override
public boolean onCreate() {
dbHelper = new DBHelper(this.getContext());
/* 打开数据库 */
dbHelper.open();
return false;
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
return 0;
}
@Override
public String getType(Uri uri) {
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
return null;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
/* 匹配URI,是C还是D */
switch (MATCHER.match(uri)) {
/*多条记录*/
case Const.STU_LIST:
return dbHelper.findList("stu", null, null, null, null, null, null);
case Const.STU_DETAIL:
long id = ContentUris.parseId(uri);
String where =" id="+ id;
//where+= " and "+selection;
return dbHelper.findList("stu", null, where, null, null, null, null);
default:
throw new IllegalArgumentException("uri error"+uri.toString());
}
}
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
return 0;
}
}
--------------------------------------------provider目录 Test.java-------------------------------
package com.ch23.provider;
import com.ch23.db.Const;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.test.AndroidTestCase;
/*单元测试*/
public class Test extends AndroidTestCase {
public void testQuery(){
/*取数据对象*/
ContentResolver resolver = this.getContext().getContentResolver();
/*查询所有的数据*/
Uri uri = Uri.parse("content://"+Const.CONTENTPROVIDER+"/stuss");
/*取数据*/
Cursor cursor = resolver.query(uri, new String[]{"id","name"},null, null, null);
while(cursor.moveToNext()){
System.out.println("name:"+cursor.getString(cursor.getColumnIndex("name")));
}
}
}
--------------------------------------------结果----------------------------------------------------
发表评论
-
史上最快 Android N(安卓7.0)运行效率暴增至600%
2016-10-15 10:08 873谷歌I/O 2016开发者大会在公司总部正式拉开 ... -
So Easy京东商城
2014-12-10 16:51 1527So Easy京东商城 我和17位小伙伴们 ... -
过期Gallery取代方案horizontalscrollView之菜单导航效果
2014-03-23 16:19 2353效果 ------------------------- ... -
过期Gallery取代方案horizontalscrollView之京东效果
2014-03-23 15:57 3832效果 ------------------------- ... -
过期Gallery取代方案horizontalscrollView之幻灯片效果
2014-03-21 17:33 2588效果 ------------------------- ... -
tabhostandbadgeview
2014-03-19 13:45 999效果 -------------------------- ... -
Android优秀开源项目大全
2014-03-18 15:17 1944以下是开源项目 1、and ... -
Android分页控件xlistview
2014-03-18 14:51 1636strings.xml ----------------- ... -
过期Gallery取代方案horizontalscrollView之普通画廊
2014-03-17 22:48 2409activity_main.xml ---------- ... -
viewpage
2014-03-17 18:08 1034strings.xml ----------------- ... -
FragmentStatePagerAdapter分页
2014-03-17 17:27 770ViewPager ViewPager 如 ... -
FragmentPagerAdapter与FragmentStatePagerAdapter差异
2014-03-17 17:20 1291简介 平常使用的FragmentPagerAdapter和F ... -
抽屉菜单
2014-03-16 12:51 1800strings.xml ----------------- ... -
px和dip以及sp的区别
2014-03-08 17:01 681显示单位px和dip以及sp的区别 dip: devi ... -
fragment生命周期
2014-03-06 16:59 846Fragment必须被写成可重用的模块。因为fragmen ... -
过期API_AlertDialog
2014-03-02 10:07 1123layout----------------------- ... -
Android_Jni 操作指南
2014-01-10 14:45 920Android_Jni 操作指南 NDK(Nati ... -
各种各样圆形进度条
2013-11-11 16:30 533http://www.apkbus.com/android-1 ... -
红杏出墙__实训版
2013-04-20 18:59 1054红杏出墙__实训版 -
google地图demo
2013-04-09 14:25 3156---------------------------- ...
相关推荐
Android四大组件之ContentProvider的单元测试
1、Android Room操作SQLite数据 2、ContentProvider使用,使用Room进行数据库操作
Android ContentProvider简单实现
android contentprovider使用示例
Android中ContentProvider的示例,详细可以参见博客:http://www.cnblogs.com/plokmju/p/android_ContentProvider.html
Android知识点ContentProvider篇
详见http://blog.csdn.net/huaxun66/article/details/53202432
ContentProvider 实例,实现ContentProvider,从其他应用访问ContentProvider数据,实现资源共享
ContentProvider的创建与访问 android
Android基于ContentProvider的音乐播放器,通过读取系统多媒体信息,得到储存在外部存储器上的所有音频文件内容,用listview显示歌曲名和歌手信息.并通过mediaPlayer进行播放.该版本只是完成了一个音乐播放器的最简单...
android-关于ContentProvider的使用例子 有详细注释
Android高级编程雪梨作业之自定义ContentProvider 将任务01生词本作业中生成的生词本数据库通过自定义ContentProvider的方式,共享给其他应用。 要求如下: (1) 使用自定义SQLiteOpenHelper来管理数据库; (2) 提交...
免费下载:android ContentProvider详细解析 讲得好详细
android contentprovider
Android应用开发使用ContentProvider以及SQLite实现对数据库的相关操作,可以直接操作数据库,也可以使用ContentProvider来对数据库进行间接操作。
个人整理的Android Intent的使用介绍 Android 组件之间的信使Intent Android 中的数据存取和ContentProvider
Android学习ContentProvider数据更新与Observer模式一Observer模式意图: 定义对象之间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被更新。 依赖(Dependents)、发布-...
通过一个日记本实例讲解了android contentprovider的用法。
Android contentprovider总结
android 自定义 ContentProvider 以及 ContentResolver