Android简单获得通讯录

ContactActivity:

 1 package com.example.practice5_service;
 2
 3 import java.util.ArrayList;
 4 import java.util.HashMap;
 5 import java.util.List;
 6 import java.util.Map;
 7
 8 import com.example.adapter.simpleAdapter;
 9
10 import android.app.Activity;
11 import android.content.ContentResolver;
12 import android.database.Cursor;
13 import android.net.Uri;
14 import android.os.Bundle;
15 import android.provider.CallLog;
16 import android.support.v4.widget.SimpleCursorAdapter;
17 import android.view.Menu;
18 import android.view.MenuItem;
19 import android.widget.ListAdapter;
20 import android.widget.ListView;
21
22 public class ContactActivity extends Activity {
23     private ListView phone_listview;
24     private List<Map<String,String>> addressList;
25     private simpleAdapter adapter;
26
27     private ListAdapter listAdaper;
28     private ContentResolver resolver;
29     @Override
30     protected void onCreate(Bundle savedInstanceState) {
31         super.onCreate(savedInstanceState);
32         setContentView(R.layout.activity_contact);
33         initView();
34         loadData();
35     }
36
37     public void initView() {
38         phone_listview=(ListView) findViewById(R.id.phone_listview);
39         addressList=new ArrayList<Map<String,String>>();
40         adapter=new simpleAdapter(this,addressList,R.layout.phone_message,
41                 new String[]{"id","name","phoneNum"},
42                 new int[]{R.id.phone_id,R.id.name_phone,R.id.num_phone});
43
44         phone_listview.setAdapter(adapter);
45     }
46     public void loadData(){
47         //内容接受者取得内容提供者中的数据
48         resolver=super.getContentResolver();//获得ContentResolver,有增删改查的方法
49         Cursor result=resolver.query(CallLog.Calls.CONTENT_URI, null, null, null, null);//获得CallLog.CONTENT_URI对应的信息
50         while(result.moveToNext()){
51             Map<String,String> row=new HashMap<String, String>();
52             int id=result.getInt(result.getColumnIndex(CallLog.Calls._ID));
53             String name=result.getString(result.getColumnIndex(CallLog.Calls.CACHED_NAME));
54             String phoneNum=result.getString(result.getColumnIndex(CallLog.Calls.NUMBER));
55             row.put("id", String.valueOf(id));
56             row.put("name", name);
57             row.put("phoneNum", phoneNum);
58             addressList.add(row);
59         }
60         result.close();
61         adapter.notifyDataSetChanged();
62     }
63 }

simpleAdapter:

 1 package com.example.adapter;
 2
 3 import java.util.List;
 4 import java.util.Map;
 5
 6 import android.content.Context;
 7 import android.view.View;
 8 import android.view.ViewGroup;
 9 import android.widget.BaseAdapter;
10 import android.widget.SimpleAdapter;
11
12 public class simpleAdapter extends SimpleAdapter {
13
14     public simpleAdapter(Context context, List<? extends Map<String, ?>> data,
15             int resource, String[] from, int[] to) {
16         super(context, data, resource, from, to);
17         // TODO Auto-generated constructor stub
18     }
19 }
时间: 2024-10-11 18:24:43

Android简单获得通讯录的相关文章

Android 个人手机通讯录开发

一.Android 个人手机通讯录开发 数据存储:SQLite 数据库 开发工具:Android Studio 二.Phone Module 简介 1. 界面展示                2. 文件结构简单分析 三.个人手机通讯录代码实现 1. 清单文件 (AndroidManifest.xml) <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http

【Android 仿微信通讯录 导航分组列表-上】使用ItemDecoration为RecyclerView打造带悬停头部的分组列表

[Android 仿微信通讯录 导航分组列表-上]使用ItemDecoration为RecyclerView打造带悬停头部的分组列表 一 概述 本文是Android导航分组列表系列上,因时间和篇幅原因分上下,最终上下合璧,完整版效果如下: 上部残卷效果如下:两个ItemDecoration,一个实现悬停头部分组列表功能,一个实现分割线(官方demo) 网上关于实现带悬停分组头部的列表的方法有很多,像我看过有主席的自定义ExpandListView实现的,也看过有人用一个额外的父布局里面套 Rec

android 简单文件操作

1.布局 <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" android:orient

Android简单登陆页面

布局: 线性布局+相对布局 日志打印: 利用LogCat和System.out.println打印观察. Onclick事件是采用过的第四种: 在配置文件中给Button添加点击时间 涉及知识: 通过上线文context获得文件的路径和缓存路径,保存文件 布局代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.an

Android简单的分享笔记

http://blog.csdn.net/xyz_lmn/article/details/16856843 采用Intent隐式调用Activity的方法,主要使用Intent.ACTION_SEND和Intent.createChooser(); 调用Android系统的分享接口.系统会过滤手机上的具有分享应用的程序,让用户进行选择.如果没有使用Intent.createChooser()则会取系统默认的用户分享方式,只有未设置的情况下才会弹出让用户进行选择. 1.简单的分享文本 1 Inte

Android简单的handler处理

1 package com.example.androidprojecttest; 2 3 import android.os.Bundle; 4 import android.os.Handler; 5 import android.os.Message; 6 import android.os.Messenger; 7 import android.R.id; 8 import android.app.Activity; 9 import android.content.Intent; 10

一个简单的通讯录。。。

上课的时候老师布置了一个作业,利用结构体实现一个简单地通讯录,这可是我们大一的时候学期末的课设题目啊,不过还好现在的水平比之前高了那么一点.. 实现一个通讯录: 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人 这个是通讯录的主要功能. 这个比较大,所以我们写在三个文件里.

Android简单封装类似JQuery异步请求

在android开发中经常会使用异步请求数据,通常会使用handler或者AsyncTask去做,handler 配合message 使用起来比较麻烦,AsyncTask 线程池只允许128个线程工作,会有溢出的问题,(当然一般情况不会有那么多线程同时工作的)所以写了这个代码,还望高手指正! [Java]代码 01 package com.xbl.task; 02 03 import java.io.BufferedReader; 04 import java.io.InputStream; 0

android 简单的登录

一直都知道WEB通过登录后session拿着回答,如今,安卓不知道怎么弄的. 研究了一下,它记录.直接在代码: server结束: index.jsp <%@page import="java.io.PrintWriter"%> <%@page import="com.sun.org.apache.xml.internal.serialize.Printer"%> <%@page import="com.google.gson