自定义ContentProvider的简单增删除改
2017-02-07 00:10
375 查看
自定义一个类继承ContentProvider(内容提供者)重新里面的六个方法,通过
getContentResolver()来调用ContentProvider(内容提供者)中的方法
private DbHelper dbHelper;
private SQLiteDatabase sqLiteDatabase; private UriMatcher uriMatcher; @Override public boolean onCreate() { Log.i("test","onCreate"); dbHelper = new DbHelper(getContext(),"person.db",null,2); sqLiteDatabase = dbHelper.getReadableDatabase(); return false; } @Nullable @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { Log.i("test","query1111"); return sqLiteDatabase.query(false,"person",projection,selection,selectionArgs,null,null,sortOrder,null); } @Nullable @Override public String getType(Uri uri) { Log.i("test","getType"); return null; } @Nullable @Override public Uri insert(Uri uri, ContentValues values) { Log.i("test","insert"); sqLiteDatabase.insert("person","name",values); return null; } @Override public int delete(Uri uri, String selection, String[] selectionArgs) { Log.i("test","delete"); sqLiteDatabase.delete("person",selection,selectionArgs); return 0; } @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { Log.i("test","update"); sqLiteDatabase.update("person",values,selection,selectionArgs); return 0; }
内容访问者:
添加数据
public void add(View view){ String name=t_main_name.getText().toString();//获取EditText中name的值 String age=et_main_age.getText().toString(); //获取EditText中age的值 uri = Uri.parse("content://com.example.android_16_sqlite.PERSONS");// //保存到数据库中 ContentValues values=new ContentValues();//Map values.put("name",name); values.put("age",age); values.putNull("_id"); cr.insert(uri,values); }
查询所有数据
public void getDate(View view){ //查询所有 //协议:content:// uri = Uri.parse("content://com.example.android_16_sqlite.PERSONS"); //查询数据 cursor = cr.query(uri,null,null,null,null); while (cursor.moveToNext()){ int pid= cursor.getInt(cursor.getColumnIndex("_id")); String sname= cursor.getString(cursor.getColumnIndex("name")); int age= cursor.getInt(cursor.getColumnIndex("age")); } PersonDate();}
修改数据
public void update(View view){ String id=editText.getText().toString(); String name=t_main_name.getText().toString(); String age=et_main_age.getText().toString(); uri = Uri.parse("content://com.example.android_16_sqlite.PERSONS"); //要修改的值保存到数据库中 ContentValues values=new 996f ContentValues();//Map values.put("name",name); values.put("age",age); cr.update(uri,values,"_id=?",new String[]{id+""}); }删除数据
public void delete(View view){ String id=editText.getText().toString(); uri = Uri.parse("content://com.example.android_16_sqlite.PERSONS"); cr.delete(uri,"_id=?",new String[]{id+""}); }
相关文章推荐
- YII2 模块的配置使用
- 新浪微博PHP7升级实践
- yii2 postman 文件上传
- 使用 PHPStorm + Xdebug 实现断点调试(二)
- [yii2小心肝儿]Url函数一箩筐
- Thinkphp3.2.3大于多少小于多少,或者是多少的联合语句
- Thinkphp3.2.3打印上一句执行的sql语句
- ubuntu卸载php
- 配置php环境
- ContentProvider实现增删改
- laravel5.1 源码阅读
- contentprovider与contentresolver
- ContentProvider内容提供者的使用
- ContentProvider实现增删查改
- 安卓 4000 四大基本组件之一 ContentProvider(自定义内容提供者实例)
- 在 OSX 10.9.4 上编译安装 FastDFS 及其 PHP 扩展
- 初学PHP 之 echo/print 以及数据类型
- Yii
- PHP数据库 mysql(三)事务、存储函数,存储过程,触发器、权限设置
- LNMP环境部署之---PHP编译安装。