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

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

ContentProvider及ContentResolver示例

2019-11-09 18:21:02
字體:
來源:轉載
供稿:網友

首先要有一個ContentPRovider的demo

這里我自己定義了一個類  里面提供了一個Person表,用于下面的ContentResolver去獲取它里面的數據

public class PersonsProvider extends ContentProvider {    private SQLiteDatabase sqLiteDatabase;    //重寫方法    @Override    public boolean onCreate() {        //SQLiteOpenHelper        DbHelper dbHelper=new DbHelper(getContext(),"person.db",null,2);        //獲取sqLiteDatabase對象        sqLiteDatabase = dbHelper.getReadableDatabase();        return false;    }    @Nullable    @Override    public Cursor query(Uri uri, String[] strings, String s, String[] strings1, String s1) {        Log.i("test","query");        Cursor c=null;        c=sqLiteDatabase.query(false,"person",strings,s,strings1,null,null,s1,null);        return c;    }    @Nullable    @Override    public String getType(Uri uri) {        return null;    }    @Nullable    @Override    public Uri insert(Uri uri, ContentValues contentValues) {        sqLiteDatabase.insert("person",null,contentValues);        return null;    }    @Override    public int delete(Uri uri, String s, String[] strings) {        sqLiteDatabase.delete("person",s,strings);        return 0;    }    @Override    public int update(Uri uri, ContentValues contentValues, String s, String[] strings) {        sqLiteDatabase.update("person",contentValues,s,strings);        return 0;    }}

然后在AndroidManifest.xml里的application里配置一個ContentProvider

<provider            android:authorities="com.zking.g150825_andorid16_sqlite.PERSONS"            android:name="com.zking.com.zking.provider.PersonsProvider"            android:exported="true"            ></provider>
android:authorities:uri
android:exported="true":設置此ContentProvider為可訪問

然后創建一個ContentProvider的demo

界面main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="zking.com.myapplication.MainActivity">    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="請輸入要查詢的ID"        android:id="@+id/ed_main_id"        />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="查詢"        android:onClick="query"        />    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="請輸入要添加的姓名"        android:id="@+id/ed_main_name"        />    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="請輸入要添加的年齡"        android:id="@+id/ed_main_age"        />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="添加"        android:onClick="insert"        />    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="請輸入要刪除的ID"        android:id="@+id/ed_main_id2"        />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="刪除"        android:onClick="delete"        />    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="請輸入要修改的ID"        android:id="@+id/ed_main_id3"        />    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="請輸入修改后的姓名"        android:id="@+id/ed_main_name2"        />    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="請輸入修改后的年齡"        android:id="@+id/ed_main_age2"        />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="修改"        android:onClick="update"        /></LinearLayout>

java類MainActivity

public class MainActivity extends AppCompatActivity {    private ContentResolver cr;    private EditText id;    private EditText name;    private EditText age;    private Uri uri;    private EditText age2;    private EditText name2;    private EditText id2;    private EditText id3;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        cr = getContentResolver();        id = (EditText) findViewById(R.id.ed_main_id);        name = (EditText) findViewById(R.id.ed_main_name);        age = (EditText) findViewById(R.id.ed_main_age);        id2 = (EditText) findViewById(R.id.ed_main_id2);        id3 = (EditText) findViewById(R.id.ed_main_id3);        name2 = (EditText) findViewById(R.id.ed_main_name2);        age2 = (EditText) findViewById(R.id.ed_main_age2);        uri = Uri.parse("content://com.zking.g150825_andorid16_sqlite.PERSONS");    }    public void query(View view){        Cursor c= cr.query(uri,null,null,null,null);        while (c.moveToNext()){            int id=c.getInt(c.getColumnIndex("_id"));            String name=c.getString(c.getColumnIndex("name"));            int age=c.getInt(c.getColumnIndex("age"));            Log.i("test",id+" "+name+" "+age);        }    }    public void insert(View view){        ContentValues cv=new ContentValues();        cv.put("name",name.getText().toString());        cv.put("age",age.getText().toString());        cr.insert(uri,cv);    }    public void delete(View view){        cr.delete(uri,"_id=?",new String[]{id2.getText().toString()});    }    public void update(View view){        ContentValues cv=new ContentValues();        cv.put("name",name2.getText().toString());        cv.put("age",age2.getText().toString());        cr.update(uri,cv,"_id=?",new String[]{id3.getText().toString()});    }}這樣我們就能夠通過下面這個demo里的ContentResolver去調用上面那個demo里ContentProvider所提供的方法來操作Person表里的數據了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凯里市| 华安县| 香河县| 苏尼特左旗| 怀集县| 潼关县| 丹凤县| 叙永县| 鄂尔多斯市| 康乐县| 衢州市| 桐城市| 诏安县| 隆安县| 娄烦县| 盐源县| 延安市| 日喀则市| 蕲春县| 临夏市| 凤山县| 盐边县| 荣成市| 通江县| 自贡市| 靖江市| 克东县| 大安市| 仁化县| 综艺| 商丘市| 平和县| 青海省| 大余县| 新民市| 桃园县| 成武县| 桂平市| 余江县| 龙岩市| 浮梁县|