1.éç¨åºæ¯
1) ContentProvider为åå¨å读åæ°æ®æä¾äºç»ä¸çæ¥å£
2) 使ç¨ContentProviderï¼åºç¨ç¨åºå¯ä»¥å®ç°æ°æ®å
񄧮
3) androidå
ç½®ç许å¤æ°æ®é½æ¯ä½¿ç¨ContentProviderå½¢å¼ï¼ä¾å¼åè
è°ç¨ç(å¦è§é¢ï¼é³é¢ï¼å¾çï¼é讯å½ç)
2.ç¸å
³æ¦å¿µä»ç»
1ï¼ContentProviderç®ä»
å½åºç¨ç»§æ¿ContentProviderç±»ï¼å¹¶éå该类ç¨äºæä¾æ°æ®ååå¨æ°æ®çæ¹æ³ï¼å°±å¯ä»¥åå
¶ä»åºç¨å
±äº«å
¶æ°æ®ãè½ç¶ä½¿ç¨å
¶ä»æ¹æ³ä¹å¯ä»¥å¯¹å¤å
±äº«æ°æ®ï¼ä½æ°æ®è®¿é®æ¹å¼ä¼å æ°æ®åå¨çæ¹å¼èä¸åï¼å¦ï¼éç¨æ件æ¹å¼å¯¹å¤å
±äº«æ°æ®ï¼éè¦è¿è¡æ件æä½è¯»åæ°æ®ï¼éç¨sharedpreferenceså
±äº«æ°æ®ï¼éè¦ä½¿ç¨sharedpreferences API读åæ°æ®ãè使ç¨ContentProviderå
±äº«æ°æ®ç好å¤æ¯ç»ä¸äºæ°æ®è®¿é®æ¹å¼ã
2ï¼Uriç±»ç®ä»
Uri uri = Uri.parse("content://com.changcheng.provider.contactprovider/contact")
å¨Content Providerä¸ä½¿ç¨çæ¥è¯¢å符串æå«äºæ åçSQLæ¥è¯¢ãå¾å¤è¯¸å¦select, add, delete, modifyçæä½æ们é½ä½¿ç¨ä¸ç§ç¹æ®çURIæ¥è¿è¡ï¼è¿ç§URIç±3个é¨åç»æï¼ âcontent://â, 代表æ°æ®çè·¯å¾ï¼åä¸ä¸ªå¯éçæ è¯æ°æ®çIDã以ä¸æ¯ä¸äºç¤ºä¾URI:
content://media/internal/images è¿ä¸ªURIå°è¿å设å¤ä¸åå¨çææå¾ç
content://contacts/people/ è¿ä¸ªURIå°è¿å设å¤ä¸çææè系人信æ¯
content://contacts/people/45 è¿ä¸ªURIè¿åå个ç»æï¼è系人信æ¯ä¸ID为45çè系人记å½ï¼
ãã尽管è¿ç§æ¥è¯¢åç¬¦ä¸²æ ¼å¼å¾å¸¸è§ï¼ä½æ¯å®çèµ·æ¥è¿æ¯æç¹ä»¤äººè¿·æã为æ¤ï¼Androidæä¾ä¸ç³»åç帮å©ç±»ï¼å¨android.providerå
ä¸ï¼ï¼éé¢å
å«äºå¾å¤ä»¥ç±»åéå½¢å¼ç»åºçæ¥è¯¢å符串ï¼è¿ç§æ¹å¼æ´å®¹æ让æ们ç解ä¸ç¹ï¼å æ¤ï¼å¦ä¸é¢content://contacts/people/45è¿ä¸ªURIå°±å¯ä»¥åæå¦ä¸å½¢å¼ï¼
ããUri person = ContentUris.withAppendedId(People.CONTENT_URI, 45);
ç¶åæ§è¡æ°æ®æ¥è¯¢:
Cursor cur = managedQuery(person, null, null, null);
è¿ä¸ªæ¥è¯¢è¿åä¸ä¸ªå
å«æææ°æ®å段ç游æ ï¼æ们å¯ä»¥éè¿è¿ä»£è¿ä¸ªæ¸¸æ æ¥è·åææçæ°æ®ï¼
package com.wissen.testApp;
public class ContentProviderDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
displayRecords();
}
private void displayRecords() {
//该æ°ç»ä¸å
å«äºææè¦è¿åçå段
String columns[] = new String[] { People.NAME, People.NUMBER };
Uri mContacts = People.CONTENT_URI;
Cursor cur = managedQuery(
mContacts,
columns, // è¦è¿åçæ°æ®å段
ããnull, // WHEREåå¥
ããnull, // WHERE åå¥çåæ°
ãã null // Order-byåå¥
);
if (cur.moveToFirst()) {
String name = null;
String phoneNo = null;
do {
// è·åå段çå¼
ãã name = cur.getString(cur.getColumnIndex(People.NAME));
phoneNo = cur.getString(cur.getColumnIndex(People.NUMBER));
Toast.makeText(this, name + â â + phoneNo, Toast.LENGTH_LONG).show();
} while (cur.moveToNext());
}
}
}
ããä¸ä¾ç¤ºèäºä¸ä¸ªå¦ä½ä¾æ¬¡è¯»åè系人信æ¯è¡¨ä¸çæå®æ°æ®ånameånumberã
ä¿®æ¹è®°å½:
æ们å¯ä»¥ä½¿ç¨ContentResolver.update()æ¹æ³æ¥ä¿®æ¹æ°æ®ï¼æ们æ¥åä¸ä¸ªä¿®æ¹æ°æ®çæ¹æ³:
private void updateRecord(int recNo, String name) {
Uri uri = ContentUris.withAppendedId(People.CONTENT_URI, recNo);
ContentValues values = new ContentValues();
values.put(People.NAME, name);
getContentResolver().update(uri, values, null, null);
}
ç°å¨ä½ å¯ä»¥è°ç¨ä¸é¢çæ¹æ³æ¥æ´æ°æå®è®°å½ï¼
updateRecord(10, âXYZâ); //æ´æ¹ç¬¬10æ¡è®°å½çnameå段å¼ä¸ºâXYZâ
æ·»å è®°å½:
è¦å¢å è®°å½ï¼æ们å¯ä»¥è°ç¨ContentResolver.insert()æ¹æ³ï¼è¯¥æ¹æ³æ¥åä¸ä¸ªè¦å¢å çè®°å½çç®æ URIï¼ä»¥åä¸ä¸ªå
å«äºæ°è®°å½å¼çMap对象ï¼è°ç¨åçè¿åå¼æ¯æ°è®°å½çURIï¼å
å«è®°å½å·ã
ä¸é¢çä¾åä¸æ们é½æ¯åºäºè系人信æ¯ç°¿è¿ä¸ªæ åçContent Providerï¼ç°å¨æ们继ç»æ¥å建ä¸ä¸ªinsertRecord() æ¹æ³ä»¥å¯¹è系人信æ¯ç°¿ä¸è¿è¡æ°æ®çæ·»å ï¼
private void insertRecords(String name, String phoneNo) {
ContentValues values = new ContentValues();
values.put(People.NAME, name);
Uri uri = getContentResolver().insert(People.CONTENT_URI, values);
Log.d(âANDROIDâ, uri.toString());
Uri numberUri = Uri.withAppendedPath(uri, People.Phones.CONTENT_DIRECTORY);
values.clear();
values.put(Contacts.Phones.TYPE, People.Phones.TYPE_MOBILE);
values.put(People.NUMBER, phoneNo);
getContentResolver().insert(numberUri, values);
}
è¿æ ·æ们就å¯ä»¥è°ç¨insertRecords(name, phoneNo)çæ¹å¼æ¥åè系人信æ¯ç°¿ä¸æ·»å è系人å§ååçµè¯å·ç ã
å é¤è®°å½:
Content Providerä¸çgetContextResolver.delete()æ¹æ³å¯ä»¥ç¨æ¥å é¤è®°å½ï¼ä¸é¢çè®°å½ç¨æ¥å é¤è®¾å¤ä¸ææçè系人信æ¯ï¼
private void deleteRecords() {
Uri uri = People.CONTENT_URI;
getContentResolver().delete(uri, null, null);
}
ä½ ä¹å¯ä»¥æå®WHEREæ¡ä»¶è¯å¥æ¥å é¤ç¹å®çè®°å½ï¼
getContentResolver().delete(uri, âNAME=â + ââXYZ XYZââ, null);
è¿å°ä¼å é¤name为âXYZ XYZâçè®°å½ã
温馨提示:答案为网友推荐,仅供参考