访问内容提供器(ContentProvider)提供的数据

来源:互联网 发布:数据库更新数据语句 编辑:程序博客网 时间:2024/05/01 06:41

一:访问内容提供器已经提供的数据

内容URI:

 1:协议声明//包名.权限/路径     eg:  content:// com.example.test.provider/tablename

 2:协议声明//包名.权限/路径/id     eg:  content:// com.example.test.provider/tablename/1  访问tablename表下ID为1的记录

将内容URI变为URI对象: Uri uri=Uri.parse("content:// com.example.test.provider/tablename");


Cursor cursor=getContentResolver().query(uri,projection,selection,selectionArgs,sortOrder);

第二个参数,projection,这个参数告诉Provider要返回的列的内容(列Column)

第三个参数,selection,设置条件,相当于SQL语句中的where。

第四个参数,selectionArgs,这个参数是要配合第三个参数使用的,如果你在第三个参数里面有?,那么你在selectionArgs写的数据就会替换掉?

第五个参数,sortOrder,按照什么进行排序,相当于SQL语句中的Order by  columnName DESE/ASC;

eg:

cursor=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null, null, android.provider.ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME+" ASC");//ASC DESC 记得加空格
直接上个读取手机联系人的例子吧:

package com.example.contactstest;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.database.Cursor;import android.os.Bundle;import android.provider.ContactsContract;import android.util.Log;import android.view.Window;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends Activity {ListView contactsListView;List<String> contacts=new ArrayList<String>();ArrayAdapter<String> adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);contactsListView=(ListView) findViewById(R.id.contacts_view);adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,contacts);contactsListView.setAdapter(adapter);readContacts();}private void readContacts(){Cursor cursor=null;try{cursor=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null, null, android.provider.ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME+" ASC");//ASC DESC 记得加空格while(cursor.moveToNext()){//String displayName=cursor.getColumnName(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));String displayName=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));String number=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));String contactsNumber=displayName+"\n"+number;Log.d("AAA", contactsNumber);contacts.add(contactsNumber);}}catch(Exception e){e.printStackTrace();}finally{if(cursor!=null){cursor.close();}}}}


0 0
原创粉丝点击