使用android studio 建两个modul,一个是内容提供者,一个是内容访问者

如果想要访问者能访问到提供者的内容,那必须在提供者一方写一个类,这个类要继承ContentProvider,接着要实现他的6个方法

public class MyContentProvider extends ContentProvider {    private SQLiteDatabase db;    private UriMatcher uriMatcher;    @Override    public boolean onCreate() {        DbUtil dbUtil=new DbUtil(getContext(),"G150820.db",null,2);        db = dbUtil.getReadableDatabase();        uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);        //01.查询所有   content://com.zking.g150820_andorid16_sqlite.PERSON/student        uriMatcher.addURI("com.zking.g150820_andorid16_sqlite.PERSON","student",1);        //02.查询单个   content://com.zking.g150820_andorid16_sqlite.PERSON/student/3        uriMatcher.addURI("com.zking.g150820_andorid16_sqlite.PERSON","student/#",2);        return false;    }    @Nullable    @Override    public Cursor query(Uri uri, String[] strings, String s, String[] strings1, String s1) {        //根据URI匹配器开始匹配Uri        int code=uriMatcher.match(uri);        switch (code){            case 1:                //查询所有                return db.query(false,"student",strings,s,strings1,null,null,s1,null);            case 2:                //查询单个                long id=ContentUris.parseId(uri);                return db.rawQuery("select * from student where _id=?",new String[]{id+""});        }        return null;    }    @Nullable    @Override    public String getType(Uri uri) {        return null;    }    @Nullable    @Override    public Uri insert(Uri uri, ContentValues contentValues) {        return null;    }    @Override    public int delete(Uri uri, String s, String[] strings) {        return 0;    }    @Override    public int update(Uri uri, ContentValues contentValues, String s, String[] strings) {        return 0;    }}

接下来内容访问者这边是,由访问者这边对内容提供者进行相应的操作(增、删、改、查)

public class MainActivity extends AppCompatActivity {    private EditText et_main_id;    private Uri uri;    private ContentResolver cr;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取内容访问者        cr = getContentResolver();        et_main_id = (EditText) findViewById(R.id.et_main_id);    }    public void getData(View view){        //判断输入框的值是否为空        if(TextUtils.isEmpty(et_main_id.toString())){            //查询所有            uri = Uri.parse("content://ghq.zking.com.ghq_android_16.PERSON/student");        }else{            //查询单个            String id=et_main_id.getText().toString();            uri=Uri.parse("content://ghq.zking.com.ghq_android_16.PERSON/student/"+id);        }        Cursor cursor=cr.query(uri,null,null,null,null);        while(cursor.moveToNext()){            int id=cursor.getInt(cursor.getColumnIndex("_id"));            String name=cursor.getString(cursor.getColumnIndex("name"));            int age=cursor.getInt(cursor.getColumnIndex("age"));            Log.i("test",id+" "+name+" "+age);        }    }}


更多相关文章

  1. Android(安卓)SDK Manage 无法更新下载内容
  2. Android(安卓)WebView如何隐藏地址栏,用WebView 来显示网页内容
  3. ListPreference之entries和entryValues
  4. ListPreference之entries和entryValues
  5. Android核心模块内容概述
  6. Android(安卓)超简易Zxing框架 生成二维码+扫码功能
  7. Android核心模块内容概述
  8. android利用Intent.ACTION_SEND实现简单分享功能
  9. 使用命令行编译Qt Android(安卓)apps

随机推荐

  1. android:versionCode和android:versionNa
  2. android 电容屏(三):驱动调试之驱动程序分析
  3. android四大组件学习总结
  4. android Instrumentation
  5. Android横竖屏切换小结
  6. Android牟利之道广告平台的介绍
  7. Android翻译: What is Android?
  8. Android开发你需要具备的基本功
  9. 《Android/OPhone开发完全讲义》连载(4):And
  10. android文字阴影效果设置