ContentProvider
MyContentProvider
public class MyContentProvider extends ContentProvider {
private MySqlHelp help;
private SQLiteDatabase database;
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
return database.delete("students",selection,selectionArgs);
}
@Override
public String getType(Uri uri) {
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
database.insert("students",null,values);
return uri;
}
@Override
public boolean onCreate() {
help = new MySqlHelp(getContext());
database = help.getReadableDatabase();
if(database==null){
return false;
}else {
return true;
}
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
return database.query("students",projection,selection,selectionArgs,null,null,sortOrder);
}
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
return database.update("students",values,selection,selectionArgs);
}
}
接收
public class MainActivity extends AppCompatActivity {
private ContentResolver context;
private Uri uri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = getContentResolver();
uri = Uri.parse("content://com.day09.aaa");
context=getContentResolver();
}
private void query() {
Cursor query = context.query(uri, null,null, null, null);
while(query.moveToNext()){
String name = query.getString(query.getColumnIndex("name"));
int id = query.getInt(query.getColumnIndex("id"));
Toast.makeText(this,id+":"+name, Toast.LENGTH_SHORT).show();
}
}
public void click(View view) {
switch (view.getId()){
case R.id.query:
query();
break;
case R.id.insert:
insert();
break;
case R.id.delete:
int raw=context.delete(uri,"name=?",new String[]{"张雨东"});
break;
}
}
private void insert() {
ContentValues contentValues=new ContentValues();
contentValues.put("name","hahaha");
contentValues.put("age",18);
context.insert(uri,contentValues);
}
}