欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Android小程序实现访问联系人

程序员文章站 2022-11-23 10:52:44
本文实例为大家分享了android实现访问联系人的具体代码,供大家参考,具体内容如下要求:编写程序,使用contentprovider实现访问联系人contentprovider类的作用:conten...

本文实例为大家分享了android实现访问联系人的具体代码,供大家参考,具体内容如下

要求:

编写程序,使用contentprovider实现访问联系人

contentprovider类的作用:

contentprovider(内容提供器)是所有应用程序之间数据存储和检索的一个桥梁,其作用是是各个应用程序之间能共享数据;主要功能是存储、检索数据并向应用程序提供访问数据的接口。

基本操作:

查询:使用contentresolver的query()方法查询数据与 sqlite查询一样,返回一个指向结果集的游标cursor。

插入:使用contentresolver.insert()方法向contentprovide中增加一个新的记录时,需要先将新纪录的数据封装到contentvalues对象中,然后调用contentresolver.insert()方法将返回一个uri,该uri内容是由contentprovider的uri加上该新纪录的扩展id得到的,可以通过该uri对该记录做进一步的操作。

删除:如果要删除单个记录,可以调用contentresolver.delete()方法,通过给该方法传递一个特定行的uri参数来实现删除操作。如果要对多行记录执行删除操作,就需要给delete()方法传递需要被删除的记录类型的uri以及一个where子句来实现多行删除。

更新:使用contentresolver.update()方法实现记录的更新操作。

实现方案:

(1)cpactivity.java程序代码如下:

package com.example.contentprovider;

import android.app.activity;
import android.content.contentresolver;
import android.database.cursor;
import android.graphics.color;
import android.net.uri;
import android.os.bundle;
import android.provider.contactscontract.contacts;
import android.widget.textview;

public class cpactivity extends activity {

 uri contact_uri = contacts.content_uri;//联系人的uri

 //声明textview的对象
 textview textview;

 //定义文本颜色
 int textcolor = color.black;

 @override
 protected void oncreate(bundle savedinstancestate) {

 super.oncreate(savedinstancestate);

 //根据main.xml设置程序ui
 setcontentview(r.layout.activity_cp);

 textview = (textview)findviewbyid(r.id.textview);

 //调用getcontactinfo()方法获取联系人信息
 string result = getcontactinfo();

 //设置文本框的颜色
 textview.settextcolor(textcolor);

 //定义字体大小
 textview.settextsize(20.0f);

 //设置文本框的文本
 textview.settext("记录\t 名字\n"+result); 
 }

 //getcontactinfo()获取联系人列表的信息,返回string对象
 public string getcontactinfo() {
 // todo auto-generated method stub
 string result = "";
 contentresolver resolver = getcontentresolver();
 cursor cursor = resolver.query(contact_uri, null, null, null, null);

 //获取_id字段索引
 int idindex = cursor.getcolumnindex(contacts._id);

 //获取name字段的索引
 int nameindex = cursor.getcolumnindex(contacts.display_name);

 //遍历cursor提取数据
 cursor.movetofirst();
 for(;!cursor.isafterlast();cursor.movetonext()){
 result = result+cursor.getstring(idindex)+"\t\t\t";
 result = result+cursor.getstring(nameindex)+"\t\n";
 }

 //使用close方法关闭游标
 cursor.close();

 //返回结果
 return result;
 }
}

(2)activity_cp.xml代码如下:

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="${relativepackage}.${activityclass}" >

 <textview
 android:id="@+id/textview"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"/>

</linearlayout>

(3)其次必须在androidmanifest.xml中添加如下权限:

<uses-permission 
 android:name="android.permission.read_contacts" />

(4)实现效果:

在联系人中添加几个联系人:

运行程序,手机里的所有联系人的id及名字就会记录下来:

Android小程序实现访问联系人

运行程序,手机里的所有联系人的id及名字就会记录下来:

Android小程序实现访问联系人

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关标签: Android 联系人