首先小伙伴们在手机里必须先有存储着的数据,然后写一个类继承ContentProvider,重写六个方法,这六个方法包括需要的增删查改,你需要什么就在哪个方法里写就可以了。
public class MyProvider extends ContentProvider {
@Override
public boolean onCreate() {
Log.i("test","onCreate");
return false;
}
@Nullable
@Override
public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
Log.i("test","query");
//把数据查询出来
DBHelper dbHelper=new DBHelper(getContext(),"G160618.db",null,2);
SQLiteDatabase sqLiteDatabase=dbHelper.getReadableDatabase();
//sqLiteDatabase.rawQuery("select * from login",null);
return sqLiteDatabase.rawQuery("select * from login",null);
}
@Nullable
@Override
public String getType(@NonNull Uri uri) {
Log.i("test","getType");
return null;
}
@Nullable
@Override
public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
Log.i("test","insert");
return null;
}
@Override
public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
Log.i("test","delete");
return 0;
}
@Override
public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
Log.i("test","update");
return 0;
}
}
接下来配置你的ContentProvider
现在我们就可以用ContentResolver了
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取需要的数据
//获取内容访问者
ContentResolver cr=getContentResolver();
Uri uri=Uri.parse("content://com.sy.administrator.Year0717_android");
Cursor cursor=cr.query(uri,null,null,null,null);
while(cursor.moveToNext()){
int uid=cursor.getInt(cursor.getColumnIndex("uid"));
String uname=cursor.getString(cursor.getColumnIndex("uname")) ;
String upass=cursor.getString(cursor.getColumnIndex("upass")) ;
Log.i("test",uid+" "+uname+" "+upass);
}
}
}
这样就行了,你学会了吗?