Androi--内容提供器

xiaoxiao2021-02-28  99

2017/08/23: 玩 2017/08/30: 内容提供器:主要用于不同的应用程序之间实线数据功能共享的功能

ContentResolver 的基本用法

对于每一个应用程序来说,如果想要访问内容提供器中共享的数据,就一定要借助ContentResolve 类,可以通过Context 中的getContentResolver()方法获取到该类的实例。ContentResolver 中提供了一系列的方法用于对数据进行CRUD 操作,其中insert()方法用于添加数据,update()方法用于更新数据,delete()方法用于删除数据,query()方法用于查询数据。

读取系统联系人

 

在layout.xml文件下: <ListView android:id="@+id/listview_contact" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView>  主活动下: package com.example.zzz.ca; import android.database.Cursor; import android.provider.ContactsContract; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { ListView listView; ArrayAdapter<String> arrayAdapter; List<String> contactList=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView=(ListView)findViewById(R.id.listview_contact); arrayAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,contactList); listView.setAdapter(arrayAdapter); readContacts(); } private void readContacts(){ Cursor cursor=null; try { cursor=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null,null); while (cursor.moveToNext()){ String name=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String number="未找到联系人号码"; number=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); contactList.add(name+"\n"+"number"); } }catch (Exception e){ e.printStackTrace(); }finally { if (cursor!=null){ cursor.close(); } } } } 在Manifest.xml下加入 <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>

 

Cursor:

Cursor 是每行的集合。使用 moveToFirst() 定位第一行。你必须知道每一列的名称。你必须知道每一列的数据类型。Cursor 是一个随机的数据源。所有的数据都是通过下标取得。

 

 

转载请注明原文地址: https://www.6miu.com/read-69153.html

最新回复(0)