ContentProvider示例

1.创建数据提供者数据库

public class DBhelper extends SQLiteOpenHelper {

    public DBhelper(Context context){
        super(context,"test.db",null,1);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        String sqlCreateTable ="create Table t_test ( id  integer primary key autoincrement , name text )";
        sqLiteDatabase.execSQL(sqlCreateTable);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

2.创建数据提供接口页面,继承ContentProvider

public class MyContentProvider extends ContentProvider {


    private DBhelper dbhelper;
    private SQLiteDatabase dataBase;

    @Override
    public boolean onCreate() {
        dbhelper = new DBhelper(getContext());
        dataBase = dbhelper.getReadableDatabase();
        return false;
    }

    @Override
    public String getType(Uri uri) {
        return "";
    }

    @Nullable
    @Override
    public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
        Cursor cursor = null;
        cursor = dataBase.query(uri.getLastPathSegment(), projection, selection, selectionArgs, null, null, sortOrder);
        return cursor;
    }

    @Nullable
    @Override
    public Uri insert(@NonNull Uri uri, @Nullable ContentValues contentValues) {
        return null;
    }

    @Override
    public int delete(@NonNull Uri uri, @Nullable String s, @Nullable String[] strings) {
        return 0;
    }

    @Override
    public int update(@NonNull Uri uri, @Nullable ContentValues contentValues, @Nullable String s, @Nullable String[] strings) {
        return 0;
    }
}

3.注册

        
        

4.B程序中调用数据

        String uriStr ="content://com.czos.exp/t_test";
        Uri uri  = Uri.parse(uriStr);
        contentS = getContentResolver();
        Cursor cursor = contentS.query(uri,null,null,null,null);
        while (cursor.moveToNext()){
            int id =cursor.getInt(0);
            String name =cursor.getString(1);
            Log.d("ContentResolver","id:"+id+" name:"+name);
        }

源代码

你可能感兴趣的:(ContentProvider示例)