国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

ContentProvider(內(nèi)容提供者)與ContentResolver(內(nèi)容訪問者)

2019-11-10 23:56:34
字體:
供稿:網(wǎng)友

     今天突然想吃披薩,然后上網(wǎng)一搜,哦,附近有家必勝客,就在五一廣場那里,上面顯示是九點(diǎn)關(guān)門,那我現(xiàn)在去就能吃到。吃披薩的時(shí)候突然靈光一現(xiàn),對(duì)了,網(wǎng)站訪問流程不正是這個(gè)過程嗎,網(wǎng)站里的內(nèi)容正是我想吃的披薩,我要想吃還得知道它的地址,當(dāng)然有沒有關(guān)門也是必須的,我得知道網(wǎng)站有沒有發(fā)布內(nèi)容呀

 <!--配置內(nèi)容提供者-->        <PRovider            android:authorities="com.Wwoo0.PERSON"            android:name="com.Wwoo0.MyContentProvider"            android:exported="true"            ></provider>

關(guān)于ContentProvider剛剛舉了一個(gè)小例子作為說明它的原理,其實(shí)也就是以上在清單文件中的三個(gè)配置名稱一個(gè)是網(wǎng)址,二是內(nèi)容,三是是否發(fā)布

接下來如何在數(shù)據(jù)庫中創(chuàng)建使用它呢,在這里分享下有關(guān)查詢方法 

         1.定義類繼承ContentProvider,根據(jù)需要重寫內(nèi)部方法

   

public class MyContentProvider extends ContentProvider {    private SQLiteDatabase db;    private UriMatcher uriMatcher;    @Override    public boolean onCreate() {        Log.i("test","onCreate");        DbUtil dbUtil = new DbUtil(getContext(), "person.db", null, 2);        db = dbUtil.getReadableDatabase();        //實(shí)例化URI匹配器        uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);        //添加規(guī)則        //01.查詢所有   content://com.zking.g150820_andorid16_sqlite.PERSON/student        uriMatcher.addURI("com.Wwoo0.PERSON","student",1);        //02.查詢單個(gè)   content://com.Wwoo0.PERSON/student/3        uriMatcher.addURI("com.zking.Wwoo0.PERSON","student/#",2);        return false;    }    @Nullable    @Override    public Cursor query(Uri uri, String[] strings, String s, String[] strings1, String s1) {        //根據(jù)URI匹配器開始匹配Uri        int code=uriMatcher.match(uri);        switch (code) {            case 1:                //查詢所有            Log.i("test","query所有");            //獲取數(shù)據(jù)庫中所有的數(shù)據(jù)            return db.query(false,"student",strings,s,strings1,null,null,s1,null);            case 2:                //查詢單個(gè)                //獲取# 的值                long id=ContentUris.parseId(uri);            Log.i("test","query單個(gè)");            return db.rawQuery("select * from student where _id=?",new String[]{id+""});        }        return null;    }    @Nullable    @Override    public String getType(Uri uri) {        Log.i("test","getType");        return null;    }    @Nullable    @Override    public Uri insert(Uri uri, ContentValues contentValues) {        Log.i("test","insert");        return null;    }    @Override    public int delete(Uri uri, String s, String[] strings) {        Log.i("test","delete");        return 0;    }    @Override    public int update(Uri uri, ContentValues contentValues, String s, String[] strings) {        Log.i("test","update");        return 0;    }

        2.有發(fā)布者自然有訪問者,根據(jù)網(wǎng)址進(jìn)入查詢(查詢所有或單個(gè)查詢)

public class ContentResolver extends AppCompatActivity {    private ContentResolver cr;    private EditText et_contentresolver_id;    private Uri uri;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_contentresolver);        //獲取內(nèi)容訪問者        cr = getContentResolver();        et_contentresolver_id = (EditText) findViewById(R.id.et_contentresolver_id);    }    public void getData(View view){        //判斷輸入框的值是否為空        if(TextUtils.isEmpty(et_contentresolver_id.getText().toString())){            //查詢所有            uri = Uri.parse("content://com.Wwoo0.PERSON/student");        }else{            //查詢單個(gè)            //01.直接query傳參            //02.類似web  http://localhost:8080/webProject/xxx.action?id=3            //03.Uri匹配器            String id=et_contentresolver_id.getText().toString();            uri = Uri.parse("content://com.Wwoo0.PERSON/student/"+id);        }        Cursor cursor=cr.query(uri,null,null,null,null);        //SimleCursorAdapter        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);        }    }


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 榆社县| 北海市| 德令哈市| 台东县| 印江| 利津县| 安义县| 宁城县| 琼海市| 西盟| 阜南县| 蓝山县| 天气| 和平区| 凤凰县| 宿松县| 定襄县| 云阳县| 玛纳斯县| 南陵县| 乐清市| 邻水| 开平市| 平武县| 昌宁县| 治多县| 青阳县| 望谟县| 宽城| 田林县| 浦东新区| 滨州市| 赣榆县| 荥阳市| 武山县| 洱源县| 胶南市| 新巴尔虎左旗| 察隅县| 出国| 黄大仙区|