那么这一节就迎来激动人心的通讯录在手天下我有的章节
- CallLog.Calls._ID
- CallLog.Calls.CACHED_NAME
- CallLog.Calls.NUMBER
想要知道你亲爱的他(她)是被动接到还是主动拨出么,这里涉及到,呼叫类型
CallLog.Calls.TYPE
- 拨出 outgoing
- 拨入 incoming
- 未接 missed
本实例只实现读取id,人名,电话号码,有心人可以自加功能
主布局函数:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@+id/callList" android:layout_width="fill_parent" android:layout_height="fill_parent"/> </LinearLayout>
listview模板布局函数定义:
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TableRow> <TextView android:id="@+id/_id" android:textSize="20px" android:layout_height="wrap_content" android:layout_width="30px" /> <TextView android:id="@+id/name" android:textSize="20px" android:layout_height="wrap_content" android:layout_width="180px" /> <TextView android:id="@+id/number" android:textSize="20px" android:layout_height="wrap_content" android:layout_width="180px" /> </TableRow> </TableLayout>
主函数Activity
public class MainActivity extends Activity { private ListView calllist=null; private Cursor result=null;//找联系人 private List<Map<String,Object>> allcalls=null; private SimpleAdapter simple=null; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.calllist=(ListView)super.findViewById(R.id.callList); //操作的uri,简单来说就是找到人家的门牌号。 this.result=super.getContentResolver().query(CallLog.Calls.CONTENT_URI,null, null, null, null); this.startManagingCursor(result);//cursor交给系统管理 allcalls=new ArrayList<Map<String,Object>>(); //找到数据一个个往Map存 for(result.moveToFirst();!result.isAfterLast();result.moveToNext()){ Map<String,Object> map=new HashMap<String,Object>(); map.put("id", result.getInt(result.getColumnIndex(CallLog.Calls._ID))); String name=result.getString(result.getColumnIndex(CallLog.Calls.CACHED_NAME)); //设置未知电话,也就是手机联系人里所没有的 if(name==null||"".equals(name)){ name="未知"; } map.put("name", name); map.put("number", result.getString(result.getColumnIndex(CallLog.Calls.NUMBER))); this.allcalls.add(map); } this.simple=new SimpleAdapter(this,this.allcalls, R.layout.call,//模板 new String[]{"id","name","number"},//匹配Map集合的key new int[]{R.id._id,R.id.name,R.id.number}//设置显示数据 ); this.calllist.setAdapter(simple); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
注意配置权限
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" />
效果如下:
相关推荐
"翻译在手天下我有一解千愁"这个标题暗示了我们正在讨论的是一款强大的翻译工具,可能是软件或者应用,它能帮助用户解决语言难题。"Reverso"是这款工具的名字,结合描述中的"reverso",我们可以确认Reverso是一款...
黑马程序员:C语言学习路线图已上线!一图在手,天下我有!.pdf
猜猜我有多爱你.ppt
简明英汉词典词库完全版!430万词条!!!最全词典整合收录!全网最多!俚语、短语、专业、新词全部收录!完美支持GoldenDict!一部在手,天下我有!
具体请看演示 http://www.ywyn.net<br> 管理员: admin/admin88 社区金币,道具等功能 注: http://www.ywyn.net 演示社区不接受技术支持。
今天开展的“我有一双勤劳的手”主题班会,旨在引导学生理解和体验劳动的价值,培养他们独立完成任务的能力,以及激发他们热爱劳动的情感。 在活动开始时,以一则谜语作为导入,既活跃了气氛,又为接下来的活动内容...
该文件描述了一场以“我有一双勤劳的手”为主题的班会活动,主要面向小学生,旨在通过各种活动和游戏培养学生的劳动习惯和生活自理能力,同时强调手的重要性,以及手的灵巧对于日常生活和学习的积极作用。...
猜猜我有多爱你阅读测试题.pdf
2022年最新运维+测试+实施面试宝典,宝典在手,高薪我有!!!!2022年最新运维+测试+实施面试宝典,宝典在手,高薪我有!!
1、集成多个搜索引擎 2、集成多种信息站点,包括设计类、产品类、研发类、算法类、工具类 3、动态自适应窗口 ... 备注:可根据自行修改 data目录下的站点信息,结合需求调整为各种类型的导航名录 >_>
我有我感觉.ppt
《假如我有翅膀》——激发孩子创造力与语言表达的PPT课件 在孩子成长的过程中,想象力的培养是教育中的一个重要组成部分。它能够激发孩子们的创造力,拓宽思维视野,增强语言表达能力,同时还能丰富他们的情感世界...
猜猜我有多爱你 (10).ppt
从给出的信息来看,文件名“猜猜我有多爱你教案21-10页.pdf”暗示了内容与教育有关,特别是针对儿童的阅读教学。由于提供的【部分内容】并不包含教育相关的信息,而是表现为一系列数字和不完整的字符,因此无法从中...
我有“伊妹儿”了(原创) 小学信息技术我有“伊妹儿”了课件
猜猜我有多爱你.pptx
通过教学,培养学生阅读的兴趣,分享阅读的快乐,并知道朋友是要去找寻的,而且他们都在附近,就等你去发现。 教学目标: 1. 理解故事的主要内容,初步理解友情的真谛,友情是不能用金钱买卖的。 2. 培养学生阅读...
猜猜我有多爱你绘本.ppt
猜猜我有多爱你教案.pdf