关于内容提供者这一块,又有一些新的认识,然后就做了一个demo,简单说一下这个demo主要有哪些内容,就是通过内容访问者去访问系统的联系人,然后展示在一个ListView上面。其中还要拿到系统提供的uri匹配器,拿到相应的系统表里联系人相对应的数据。
具体类的代码如下:
public class MainActivity extends AppCompatActivity {
private ContentResolver contentResolver;
private ListView lv_main_listView;
private TextView tv_main_textView;
private ImageView iv_main_imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获得内容访问者
contentResolver = getContentResolver();
lv_main_listView = (ListView) findViewById(R.id.lv_main_listView);
tv_main_textView = (TextView) findViewById(R.id.tv_main_textView);
iv_main_imageView = (ImageView) findViewById(R.id.iv_main_imageView);
}
public void getContacts(View view){
//获取联系人raw_Contacts
Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");
Cursor cursor=contentResolver.query(uri,null,null,null,null);
SimpleCursorAdapter simpleCursorAdapter=new SimpleCursorAdapter(this,R.layout.item_list,cursor,new String[]{
"_id","display_name"},new int[]{R.id.tv_item_list_id,R.id.tv_item_list_name});
//设置适配器
lv_main_listView.setAdapter(simpleCursorAdapter);
while(cursor.moveToNext()){
int id=cursor.getInt(cursor.getColumnIndex("_id"));
String name=cursor.getString(c