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

首頁 > 學院 > 開發設計 > 正文

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

2019-11-11 00:46:55
字體:
來源:轉載
供稿:網友

     今天突然想吃披薩,然后上網一搜,哦,附近有家必勝客,就在五一廣場那里,上面顯示是九點關門,那我現在去就能吃到。吃披薩的時候突然靈光一現,對了,網站訪問流程不正是這個過程嗎,網站里的內容正是我想吃的披薩,我要想吃還得知道它的地址,當然有沒有關門也是必須的,我得知道網站有沒有發布內容呀

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

關于ContentProvider剛剛舉了一個小例子作為說明它的原理,其實也就是以上在清單文件中的三個配置名稱一個是網址,二是內容,三是是否發布

接下來如何在數據庫中創建使用它呢,在這里分享下有關查詢方法 

         1.定義類繼承ContentProvider,根據需要重寫內部方法

   

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();        //實例化URI匹配器        uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);        //添加規則        //01.查詢所有   content://com.zking.g150820_andorid16_sqlite.PERSON/student        uriMatcher.addURI("com.Wwoo0.PERSON","student",1);        //02.查詢單個   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) {        //根據URI匹配器開始匹配Uri        int code=uriMatcher.match(uri);        switch (code) {            case 1:                //查詢所有            Log.i("test","query所有");            //獲取數據庫中所有的數據            return db.query(false,"student",strings,s,strings1,null,null,s1,null);            case 2:                //查詢單個                //獲取# 的值                long id=ContentUris.parseId(uri);            Log.i("test","query單個");            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.有發布者自然有訪問者,根據網址進入查詢(查詢所有或單個查詢)

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);        //獲取內容訪問者        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{            //查詢單個            //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);        }    }


上一篇:460. LFU Cache

下一篇:參數傳遞方式

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兰考县| 桦川县| 南部县| 呈贡县| 金阳县| 深圳市| 莫力| 博罗县| 酉阳| 商丘市| 西和县| 天门市| 白水县| 塔城市| 林甸县| 武城县| 沅江市| 怀远县| 北宁市| 长顺县| 白银市| 麟游县| 清流县| 三河市| 芜湖县| 田林县| 英吉沙县| 苍溪县| 青冈县| 嫩江县| 大安市| 漯河市| 永春县| 财经| 和硕县| 赤峰市| 射洪县| 加查县| 灵丘县| 视频| 仁寿县|