比如說你要拿手機電話本的電話號碼,或者相冊,等等存到數據庫的東西,那麼內容提供者ContentProvider與內容訪問者ContentResolver便是最好的工具
下面就給大家上代碼進行操作
第一步:
寫一個Module,新建一個MyProvider.java文件,重寫查詢的方法,當然也可以去用增刪改,這裏我就只演示查了
public class MyProvider extends ContentProvider{
@Override
public boolean onCreate() {
return false;
}
@Nullable
@Override
public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
//獲得數據庫
DbHelper dbHelper=new DbHelper(getContext(),"G160628.db",null,3);
//調用寫的database
//實際開發讀寫都可以用
SQLiteDatabase sqLiteDatabase = dbHelper.getWritableDatabase();
//進行查詢
Cursor cursor=sqLiteDatabase.rawQuery("select * from login",null);
return cursor;
}
@Nullable
@Override
public String getType(@NonNull Uri uri) {
return null;
}
@Nullable
@Override
public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
return null;
}
@Override
public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
return 0;
}
@Override
public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
return 0;
}
}
第二步:配置,加入以下配置信息
<!--配置
1、authorities必選寫上項目的package名+命名
2、name 寫的是你的內容提供者
-->
<provider
android:authorities="com.example.g160628_android16_sqlite.ZhongZi"
android:name=".MyProvider"
android:exported="true"></provider>
</application>
第四步:接收內容,在你自己要獲得該數據的地方寫內容訪問者
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//getContentResolver獲得內容提供者
ContentResolver contentResolver=getContentResolver();
//轉Uri,解析類 記得在authorities前面加content://協議
Uri uri=Uri.parse("content://com.example.g160628_android16_sqlite.ZhongZi");
//接收ContentResolver的遊標
Cursor cursor=contentResolver.query(uri,null,null,null,null);
//循環打印值
while (cursor.moveToNext()){
String uname=cursor.getString(cursor.getColumnIndex("uname"));
Log.i("test",uname);
}
}
}
小編就整理到這啦,有什麼疑問的可以私信我