简单的Contentprovider和contentResolver

来源:互联网 发布:什么是二维数组 编辑:程序博客网 时间:2024/05/18 12:01

配置

<provider
    //类名    android:name=".ProContent"
     //标志    android:authorities="aaa"
    //设置可向外输出    android:exported="true"></provider>



1.内容提供者提供openhelper类

public class OpenHelper extends SQLiteOpenHelper{    public OpenHelper(Context context) {        super(context, "A.db",null,1);    }    @Override    public void onCreate(SQLiteDatabase sqLiteDatabase) {        sqLiteDatabase.execSQL("create table a(id integer primary key,name varchar(20),age varchar(20))");    }    @Override    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {    }}
2.1.内容提供者提供procontent类,相当于dao类,提供增删改查的方法

private OpenHelper openHelper;@Overridepublic boolean onCreate() {    openHelper = new OpenHelper(getContext());    return false;}@Nullable@Overridepublic Cursor query(@NonNull Uri uri, @Nullable String[] strings, @Nullable String s, @Nullable String[] strings1, @Nullable String s1) {    SQLiteDatabase readableDatabase= openHelper.getReadableDatabase();    Cursor a = readableDatabase.query("a", null, null, null, null, null, null);    return a;}@Nullable@Overridepublic String getType(@NonNull Uri uri) {    return null;}@Nullable@Overridepublic Uri insert(@NonNull Uri uri, @Nullable ContentValues contentValues) {   //openHelper.getWritableDatabase().execSQL("insert into a(name,age)values(?,?)",new Object[]{
contentValues.get("name"),contentValues.get("age")
});
    openHelper.getWritableDatabase().insert("a",null,contentValues);
return null;}@Overridepublic int delete(@NonNull Uri uri, @Nullable String s, @Nullable String[] strings) {    return 0;}@Overridepublic int update(@NonNull Uri uri, @Nullable ContentValues contentValues, @Nullable String s, @Nullable String[] strings) {    return 0;}

3.添加

ContentResolver contentResolver= getContentResolver();Uri uri=Uri.parse("content://aaa");ContentValues c=new ContentValues();c.put("name","张三");c.put("age","13");contentResolver.insert(uri,c);

4.查找

TextView t= (TextView) findViewById(R.id.t);ContentResolver contentResolver= getContentResolver();
//格式:content://标志//表名Uri uri=Uri.parse("content://aaa");Cursor query= contentResolver.query(uri, null, null, null, null);while (query.moveToNext()){    t.setText(query.getString(1)+query.getString(2));}



原创粉丝点击