`
umbrellall1
  • 浏览: 142850 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

第三章:取得联系人资料

阅读更多
效果:













main.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<EditText
android:id="@+id/name"
android:layout_width="92px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="24px"
android:layout_y="35px"
>
</EditText>
<EditText
android:id="@+id/number"
android:layout_width="268px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="23px"
android:layout_y="87px"
>
</EditText>
<Button
android:id="@+id/sreach"
android:layout_width="57px"
android:layout_height="wrap_content"
android:text="&#25628;&#32034;"
android:layout_x="26px"
android:layout_y="142px"
>
</Button>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="21px"
android:layout_y="202px"
>

</TextView>
</AbsoluteLayout>



AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="provider.test"
      android:versionCode="1"
      android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        
        <activity android:name=".ProviderTest"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

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




package provider.test;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class ProviderTest extends Activity {
	private EditText name;
	private EditText number;
	private Button search;
	private TextView text;
	private static final int PICK_CONTACT_SUNACTIVITY=2;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /** 载入Main.xml*/
        setContentView(R.layout.main);
        /** 通过id找到组件*/
        name=(EditText)findViewById(R.id.name);
        number=(EditText)findViewById(R.id.number);
        text=(TextView)findViewById(R.id.text);
        search=(Button)findViewById(R.id.sreach);
        /** 设置button按钮点击事件*/
        search.setOnClickListener(new Button.OnClickListener(){
        	public void onClick(View v){
        		 /** 构建uri来取的联系人数据位置*/
        		Uri uri=Uri.parse("content://contacts/people");
        		 /** 通过intent来取的联系人数据返回的所选的值*/
        		Intent intent=new Intent(Intent.ACTION_PICK,uri);
        		/** 打开新的Activity并期望Activity返回值*/
        		startActivityForResult(intent, PICK_CONTACT_SUNACTIVITY);
        	}
        });
    }
    
    protected void onActivityResult(int requestCode,int resultCode,Intent data){
    	switch(requestCode){
    	case PICK_CONTACT_SUNACTIVITY:
    		Cursor c=null;
    		Cursor phone =null;
    		/** 获得uri对象*/
    		final Uri uriRet=data.getData();
    		if(uriRet!=null){
    			try {
    				/** 必须要有android.permission.READ_CONTACTS权限*/
    				c=managedQuery(uriRet, null, null, null, null);
    				/**将Currsor一道数据最前端*/
    				c.moveToFirst();
    				/**获得联系人名字*/
    				String strname=c.getString(c.getColumnIndexOrThrow(PhoneLookup.DISPLAY_NAME));
    				
    				/**(如果你使用的是2.0或2.0以上的API那么获得联系人号码)
    				 * 
    				 * 获取联系人的ID号,在SQLite中的数据库ID
    				 * */
    				String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
    				phone = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,    ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "  
    				         + contactId, null, null);
    				 String strPhoneNumber=null;
    				 phone.moveToFirst();
    				 /**获得联系人号码*/
    				      strPhoneNumber = phone.getString(phone.getColumnIndex (ContactsContract.CommonDataKinds.Phone.NUMBER)); 
    				      /**设置两个EditText参数*/
    				name.setText(strname);
    				number.setText(strPhoneNumber);
				} catch (Exception e) {
					 /**将错误信息显示出来*/
					text.setText(e.toString());
					e.printStackTrace();
				}finally{
					 /**关闭对象*/
					phone.close();
					c.close();
				}
    		}
    		break;
    	}
    	super.onActivityResult(requestCode, resultCode, data);
    }
}



使用Content Provider

查询所有通讯录数据:

content://contacts/people

查询通讯录的特定联系人ID:10

content://contacts/people/10

修改Content provider里的数据

ContentResolver.update();

添加一项数据进入 Content Provider

ContentResolvert.insert();

将数据存储至Content Provider:

ContentResolver().openOutputStream();

自Provider以删除一笔数据:

ContentResolver.delete();
  • 大小: 7.4 KB
  • 大小: 6.9 KB
  • 大小: 9.2 KB
分享到:
评论

相关推荐

    大学文献检索资料 DOC

    第三章 专利文献及其检索 第一节 专利的基本知识  什么是专利? 所谓专利是指一项技术性的创造发明在一定的年限和国家范围内受法律保护的技术专有权利。  专利的类型(发明专利、实用新型专利、外观设计专利) ...

    金领简历 敲开苹果 微软 谷歌的大门

     第3章入门指南  3.1 黑洞:在线投送简历  3.2 找人推荐自己  3.2.1 告诉你的朋友你在找工作  3.2.2 让别人知道你自己  3.2.3 关于信息性面试  3.2.4 与招聘人员取得联系  3.2.5 校友网络和其他  ...

    google android sdk开发范例大全 第二版 PDF 光盘代码

     5.10 取得联系人资料   5.11 制作有图标的文件资源 .管.理. 器   5.12 还原手机默认桌面   5.13 置换手机背景图   5.14 获取手机现存桌面   5.15 文件资源 .管.理. 器再进化   5.16 取得...

    Google Android SDK开发范例大全(第3版) 3/5

    5.10 取得联系人资料 5.11 制作有图标的文件资源管理器 5.12 还原手机默认桌面 5.13 置换手机后台图 5.14 获取手机现存桌面 5.15 文件资源管理器再进化 5.16 取得目前File与Cache的路径 5.17 打开/关闭WiFi服务 5.18...

    计算机理论第一章详细透彻 支持格式WORD

    计算机理论 第一章 信息技术 信息一般说法信息就是信息,它既不是物质也不是能量。...当前是第三代移动通信系统(3G)正在迅速兴起,它将实现高质量的多媒体通信,包括话音通信,数据通信和图像通信等。

    Google Android SDK开发范例大全(第3版) 1/5

    5.10 取得联系人资料 5.11 制作有图标的文件资源管理器 5.12 还原手机默认桌面 5.13 置换手机后台图 5.14 获取手机现存桌面 5.15 文件资源管理器再进化 5.16 取得目前File与Cache的路径 5.17 打开/关闭WiFi服务 5.18...

    Google Android SDK开发范例大全(第3版) 4/5

    5.10 取得联系人资料 5.11 制作有图标的文件资源管理器 5.12 还原手机默认桌面 5.13 置换手机后台图 5.14 获取手机现存桌面 5.15 文件资源管理器再进化 5.16 取得目前File与Cache的路径 5.17 打开/关闭WiFi服务 5.18...

    softice 用户手册中文版

    第三章 SoftICE教程 介绍 载入SoftICE 构造GDIDEMO样本程序 装入GDIDEMO样本程序 控制SoftICE屏幕 通过源码跟踪和逐步调试 读本地数据 设定断点和目标断点 设定一个断点 设定STICKY断点 (此处不知...

    《Google Android SDK开发范例大全(第3版)》.pdf

    5.10 取得联系人资料 207 5.11 制作有图标的文件资源管理器 210 5.12 还原手机默认桌面 215 5.13 置换手机后台图 217 5.14 获取手机现存桌面 221 5.15 文件资源管理器再进化 222 5.16 取得目前...

    使用div+css开发个人网站毕业设计.doc

    使用div+css开发个人网站毕业设计 目 录 前 言 1 第一章 网站开发背景 2 第一节 web概述 2 一、认识WEB 2 二、认识WEB2.0标准 2 第二章 DIV+CSS详解 5 第一节 DIV+CSS简介 5 第二节 级联样式表简介 6 第三节 DIV+CSS...

    招生培训实战教程.doc

    高考 体检时间、地点,英语口语听力考试时间、地点,一模、二模、三模的时间 ,毕业会考时间,填报志愿时间,各班校组织的各种活动时间、地点等各类有效 信息。 2. 怎样开展调研工作: 1. 通过当地城市地图; 2. ...

    基于JAVA技术的医院管理住院系统软件程序源码+数据库+word毕业设计论文文档.zip

    第三章 系统的需求分析和可行性研究 7 3.1 功能需求 7 3.1.1 系统层次结构图 7 3.1.2 医生信息管理 8 3.1.3 病床信息管理 8 3.1.4 病人信息管理 9 3.1.5 收费信息管理 9 3.1.6 统计分析管理 9 3.1.7 系统管理 10 ...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件资源管理器——自定义Adapter对象 5.12 还原手机默认桌面——重写clearWallpaper方法 5.13 置换手机背景图——Gallery与setWallpaper整合实现 ...

    嵌入式系统详细文档

    第二部分包括两章,在第二章中介绍嵌入式系统的相关知识和概念,并介绍了MCGS嵌入式实时控制软件的特点、软件结构等相关内容,在第三章讨论完成本课题中需要用到的一些知识和相关技术。为后续论文作必要的知识准备。...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件资源管理器——自定义Adapter对象 5.12 还原手机默认桌面——重写clearWallpaper方法 5.13 置换手机背景图——Gallery与setWallpaper整合实现 ...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件资源管理器——自定义Adapter对象 5.12 还原手机默认桌面——重写clearWallpaper方法 5.13 置换手机背景图——Gallery与setWallpaper整合实现 ...

    C#微软培训资料

    第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...

Global site tag (gtag.js) - Google Analytics