1、创建一个Sqlite数据库助手类、继承SQLiteOpenHelper
2、创建一个实体类、用包装一些常量
3、创建数据库共享的类、继承ContentProvider
4、注册共享的类
<provider
android:name="com.share.PersonContentProvider"
android:authorities="com.android.PersonContentProvider" > </provider>
//表示:唯一标识




//Sqlite助手类
package com.share;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHelper extends SQLiteOpenHelper {

public final static String DB_NAME="StuInfo.db";
public final static int DB_VALUES=1;
public final static String TAB_NAME="user";
public DBHelper(Context context) {
//创建数据库
super(context, DB_NAME, null, DB_VALUES);

}

public void onCreate(SQLiteDatabase db) {
//创建表
db.execSQL("create table "+TAB_NAME+"("+MyUser.UserColumns._ID+" integer primary key autoincrement,"+
MyUser.UserColumns.USER_NAME+" text,"+MyUser.UserColumns.USER_AGE+" integer)");

}

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}



//实体类
package com.share;

import android.net.Uri;
import android.provider.BaseColumns;

public class MyUser {
//提供一个Uri地址
public final static String authority="com.android.PersonContentProvider";
public final static class UserColumns implements BaseColumns{
public final static Uri CONTENT_URI=Uri.parse("content://"+authority);
public final static String USER_NAME="username";
public final static String USER_AGE="userage";
}
}









//数据库共享类
package com.share;

import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;

public class PersonContentProvider extends ContentProvider {

private DBHelper helper;
public SQLiteDatabase db;
public int delete(Uri uri, String selection, String[] selectionArgs) {

return 0;
}


public String getType(Uri uri) {

return null;
}


public Uri insert(Uri uri, ContentValues values) {
db=helper.getWritableDatabase();
//返回当前插入数据的行号
long rowid=db.insert(DBHelper.TAB_NAME, null, values);
if(rowid>0){
Uri rowUri=ContentUris.withAppendedId(uri, rowid);
return rowUri;
}
return null;
}


public boolean onCreate() {
//初始化数据库
helper = new DBHelper(getContext());
return false;
}


public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
db=helper.getReadableDatabase();
SQLiteQueryBuilder sqb=new SQLiteQueryBuilder();
//插入的数据的表
sqb.setTables(DBHelper.TAB_NAME);
Cursor c=sqb.query(db, projection, null, null, null, null, null);
c.setNotificationUri(getContext().getContentResolver(), uri);
return c;
}


public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {

return 0;
}

}










//MniaActivity

package com.share;

import android.os.Bundle;
import android.widget.Toast;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;

public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
insertData();
display();
}

public void insertData() {
ContentResolver cr = getContentResolver();
ContentValues cv=new ContentValues();
cv.put(MyUser.UserColumns.USER_NAME, "张学友");
cv.put(MyUser.UserColumns.USER_AGE, 55);
cr.insert(MyUser.UserColumns.CONTENT_URI, cv);
}

@SuppressLint("ShowToast")
public Cursor display(){
ContentResolver cr = getContentResolver();
Cursor c =cr.query(MyUser.UserColumns.CONTENT_URI,
new String[]{MyUser.UserColumns.USER_NAME,MyUser.UserColumns.USER_AGE}, null, null, null);
while(c.moveToNext()){
String name=c.getString(0);
int age=c.getInt(1);
Toast.makeText(MainActivity.this, name+" "+age, 1000).show();
}
return c;

}
}










更多相关文章

  1. Android学习笔记2012年(上)
  2. Android(安卓)SQLite数据库版本升级的管理实现
  3. ArrayAdapter ,SimpleAdapter ,SimpleCursorAdapter 区别
  4. 初试GreenDAO 3.2.3
  5. Android:配置LitePal 3.0
  6. android数据库操作:根据过滤条件获取部分通讯录信息
  7. Android数据存储(3)SQLite简介和简单的登录与注册源代码
  8. android 第一行代码(第二版)Litepal遇到的问题
  9. Android(安卓)数据库初窥

随机推荐

  1. 关于上传的app的标识号和版本号
  2. 关于listview
  3. Android(安卓)查看动态库依赖的库文件
  4. Android上的Guice RoboGuice
  5. Android热补丁动态修复技术(二):实战!CLASS_I
  6. Android(安卓)当修改一些代码时,使用什么
  7. android BatteryManager电池管理
  8. Android(安卓)- 菜单
  9. android service 广播 更新 activity
  10. android中使用反射机制,调用framework中的