您的位置:首页 > 编程语言 > PHP开发

ContentProvider

2016-05-17 09:10 525 查看

ContentProvider简单使用事例

AndroidManifest配置

<!-- authorities 主机名 -->
<provider
android:name="com.glinkus.icare.contentProvider.ContactProvider"
android:authorities="com.android.glinkus.icare.ContactProvider" >
</provider>


自定义ContentProvider

package com.glinkus.icare.contentProvider;

import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;

import com.glinkus.icare.db.DBHelper;

/**
* <p>Title:ContactProvider</p>
* <p>Description: </p>
* @author syz
* @date 2015-12-23
*/
public class ContactProvider extends ContentProvider {

private static final String CONTENT_AUTHORITY = "com.android.glinkus.icare.ContactProvider";

private static final String BASE_CONTENT_URL ="content://"+CONTENT_AUTHORITY+"/";

private static final Uri QUERY_CONTACT_NAME_URL = Uri.parse(BASE_CONTENT_URL+"contact");

private DBHelper helper;

private SQLiteDatabase db;

private static UriMatcher uriMatcher;

static{
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.match(QUERY_CONTACT_NAME_URL);
}

@Override
public boolean onCreate() {
helper = new DBHelper(getContext());
return helper != null ?true:false;
}

@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
db = helper.getReadableDatabase();
Cursor cursor = db.query("tb_contact", null, "call_id = ?", selectionArgs, null, null, null);
return cursor;
}

@Override
public String getType(Uri uri) {
return null;
}

@Override
public Uri insert(Uri uri, ContentValues values) {
return null;
}

@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
return 0;
}

@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
return 0;
}

}


调用

String imageUrl = null;
String query_uri = "content://com.android.glinkus.icare.ContactProvider/contact";
Uri uri = Uri.parse(query_uri);
Cursor cursor = getContentResolver().query(uri, null, null, new String[] { callNumber }, null);
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
String nickName = cursor.getString(cursor.getColumnIndex("name"));
if (!TextUtils.isEmpty(nickName)) {
this.nickName = nickName;
} else {
// this.nickName = getString(R.string.unknown);
}
nameTextView.setText(nickName);
if (cursor != null) {
cursor.close();
}

}
return imageUrl;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: