2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 安卓(android)开发

ContentProvider简单使用

时间:01-14来源:作者:点击数:36

ContentProvider简单使用

  • public class MainActivity extends AppCompatActivity {
  • @Override
  • protected void onCreate(Bundle savedInstanceState) {
  • super.onCreate(savedInstanceState);
  • setContentView(R.layout.activity_main);
  • MyOpenHelper myOpenHelper = new MyOpenHelper(this);
  • SQLiteDatabase db = myOpenHelper.getReadableDatabase();
  • Cursor cursor = db.query("info", null, null, null, null, null, null);
  • if (cursor!=null && cursor.getCount()>0){
  • while (cursor.moveToNext()){
  • String name = cursor.getString(1);
  • int money = cursor.getInt(2);
  • System.out.println("----"+name+money);
  • }
  • }
  • }
  • }
  • public class MyDBProvider extends ContentProvider {
  • private MyOpenHelper myOpenHelper;
  • private static final int QUERY_SUCCESS=1;
  • private static final int INSERT_SUCCESS=2;
  • private static final int UPDATE_SUCCESS=3;
  • private static final int DELETE_SUCCESS=4;
  • private static final UriMatcher sUriMatcher =new UriMatcher(UriMatcher.NO_MATCH);
  • static {
  • sUriMatcher.addURI("lijinpeng","query",QUERY_SUCCESS);
  • sUriMatcher.addURI("lijinpeng","insert",INSERT_SUCCESS);
  • sUriMatcher.addURI("lijinpeng","update",UPDATE_SUCCESS);
  • sUriMatcher.addURI("lijinpeng","delete",DELETE_SUCCESS);
  • }
  • @Override
  • public boolean onCreate() {
  • myOpenHelper = new MyOpenHelper(getContext());
  • return false;
  • }
  • @Override
  • public Cursor query( Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
  • int match = sUriMatcher.match(uri);
  • switch (match){
  • case QUERY_SUCCESS :
  • SQLiteDatabase db = myOpenHelper.getReadableDatabase();
  • Cursor cursor = db.query("info", projection, selection, selectionArgs, null, null, sortOrder);
  • return cursor;
  • default:
  • return null;
  • }
  • }
  • @Override
  • public String getType( Uri uri) {
  • return null;
  • }
  • /*match不匹配会有异常*/
  • @Override
  • public Uri insert( Uri uri, ContentValues values) {
  • int match = sUriMatcher.match(uri);
  • switch (match){
  • case INSERT_SUCCESS:
  • SQLiteDatabase db = myOpenHelper.getReadableDatabase();
  • long insert = db.insert("info",null,values);
  • db.close();
  • return Uri.parse("insert ="+insert) ;
  • default:
  • throw new IllegalArgumentException("wrong my man");
  • }
  • }
  • @Override
  • public int delete( Uri uri, String selection, String[] selectionArgs) {
  • int match = sUriMatcher.match(uri);
  • switch (match) {
  • case DELETE_SUCCESS:
  • SQLiteDatabase db = myOpenHelper.getReadableDatabase();
  • int delete = db.delete("info", selection, selectionArgs);
  • db.close();
  • return delete;
  • default:
  • return -1;
  • }
  • }
  • @Override
  • public int update(Uri uri, ContentValues values,String selection, String[] selectionArgs) {
  • int match = sUriMatcher.match(uri);
  • switch (match) {
  • case UPDATE_SUCCESS:
  • SQLiteDatabase db = myOpenHelper.getReadableDatabase();
  • int update = db.update("info", values, selection, selectionArgs);
  • db.close();
  • return update;
  • default:
  • return -1;
  • }
  • }
  • }
  • public class MyOpenHelper extends SQLiteOpenHelper {
  • public MyOpenHelper( Context context) {
  • super(context, "MyDb.db", null, 1);
  • }
  • @Override
  • public void onCreate(SQLiteDatabase db) {
  • db.execSQL("create table info (_id integer primary key autoincrement,name varchar(20),money integer)");
  • db.execSQL("insert into info(name,money) values (?,?)",new String[]{"kevin","2000"});
  • db.execSQL("insert into info(name,money) values (?,?)",new String[]{"wx","10000"});
  • }
  • @Override
  • public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  • }
  • }

  • public class MainActivity extends AppCompatActivity {
  • @Override
  • protected void onCreate(Bundle savedInstanceState) {
  • super.onCreate(savedInstanceState);
  • setContentView(R.layout.activity_main);
  • /*String path= "/data/data/com.example.dbprovider_51/databases/MyDb.db";
  • SQLiteDatabase db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READWRITE);
  • Cursor cursor = db.query("info", null, null, null, null, null, null);
  • if (cursor!=null && cursor.getCount()>0){
  • while (cursor.moveToNext()){
  • String name = cursor.getString(1);
  • int money = cursor.getInt(2);
  • System.out.println("--------name = "+name+"/money = "+money);
  • 不好的方法
  • }
  • }*/
  • }
  • public void query(View view) {
  • Uri uri = Uri.parse("content://lijinpeng/query");
  • ContentResolver resolver = getContentResolver();
  • Cursor cursor = resolver.query(uri, null, null, null, null);
  • if (cursor != null && cursor.getCount() > 0) {
  • while (cursor.moveToNext()) {
  • String name = cursor.getString(1);
  • int money = cursor.getInt(2);
  • System.out.println("--------name = " + name + "/money = " + money);
  • }
  • }
  • }
  • public void insert(View view) {
  • Uri uri = Uri.parse("content://lijinpeng/insert");
  • ContentResolver resolver = getContentResolver();
  • ContentValues values = new ContentValues();
  • values.put("name","ppp");
  • values.put("money","111");
  • Uri insert = resolver.insert(uri, values);
  • if (insert !=null){
  • Toast.makeText(this, insert.toString(), Toast.LENGTH_SHORT).show();
  • }
  • }
  • public void updata(View view) {
  • Uri uri = Uri.parse("content://lijinpeng/update");
  • ContentResolver resolver = getContentResolver();
  • ContentValues values = new ContentValues();
  • values.put("money","999");
  • int update = resolver.update(uri,values,"name =?",new String[]{"ppp"});
  • Toast.makeText(this,"--------update"+update, Toast.LENGTH_SHORT).show();
  • }
  • public void delete(View view) {
  • Uri uri = Uri.parse("content://lijinpeng/delete");
  • ContentResolver resolver = getContentResolver();
  • int delete = resolver.delete(uri, null, null);
  • Toast.makeText(this,"--------delete"+delete, Toast.LENGTH_SHORT).show();
  • }
  • }
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门