一. 创建自定义类,继承ContentProvider
public class MyProvider extends ContentProvider {
SQLiteDatabase db;
@Override
public boolean onCreate() {
MyHelper myHelper = new MyHelper(getContext());
db = myHelper.getWritableDatabase();// 获取操作数据库的类
return true;
}
@Nullable
@Override
public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
return db.query("good",projection,selection,selectionArgs,null,null,sortOrder);
}
@Nullable
@Override
public String getType(@NonNull Uri uri) {
return null;
}
@Nullable
@Override
public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
db.insert("good",null,values);
return uri;
}
@Override
public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
return db.delete("good",selection,selectionArgs);
}
@Override
public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
return db.update("good",values,selection,selectionArgs);
}
}
二、清单文件注册
<provider
android:exported="true"
android:authorities="com.huohuo"
android:name=".MyProvider"
</provider>
现在就可以使用拉 让我们来操作一下吧!
public class Fragment4 extends Fragment {
private Button add;
private Button delete;
private Button update;
private Button qurey;
public void bindView(){
add = (Button) view.findViewById(R.id.add);
delete = (Button) view.findViewById(R.id.delete);
update = (Button) view.findViewById(R.id.update);
qurey = (Button) view.findViewById(R.id.qurey);
}
View view;
ContentResolver contentResolver;
Uri uri;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {
view= inflater.inflate(R.layout.fragment4, null);
uri = Uri.parse("content://com.huohuo");
contentResolver= getActivity().getContentResolver();
bindView();
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ContentValues contentValues = new ContentValues();
contentValues.put("name","李佩阳");
contentResolver.insert(uri,contentValues);
Toast.makeText(getContext(), "添加成功", Toast.LENGTH_SHORT).show();
}
});
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
contentResolver.delete(uri,"id=?",new String[]{"2"});
Toast.makeText(getContext(), "删除成功", Toast.LENGTH_SHORT).show();
}
});
update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "更新成功", Toast.LENGTH_SHORT).show();
}
});
qurey.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor query = contentResolver.query(uri, null, null, null, null);
while(query.moveToNext()){
Log.i("good",query.getString(1));
}
Toast.makeText(getContext(), "查询成功", Toast.LENGTH_SHORT).show();
}
});
return view;
}
}