三.   SimpleCursorAdapter与SimpleAdapter用法相近。只是将List对象换成了Cursor对象。而且SimpleCursorAdapter类构造方法的第四个参数from表示Cursor对象中的字段,而SimpleAdapter类构造方法的第四个参数from表示Map对象中的key.

这个实例主要是查询通讯录,实现联系人拨号实例:

1.java代码:

 1 package com.example.simplecursoradapter;
 2
 3 import android.app.Activity;
 4 import android.content.Intent;
 5 import android.database.Cursor;
 6 import android.database.CursorWrapper;
 7 import android.graphics.Color;
 8 import android.net.Uri;
 9 import android.os.Bundle;
10 import android.provider.Contacts.People;
11 import android.telephony.PhoneNumberUtils;
12 import android.util.Log;
13 import android.view.View;
14 import android.widget.AdapterView;
15 import android.widget.LinearLayout;
16 import android.widget.ListAdapter;
17 import android.widget.ListView;
18 import android.widget.SimpleCursorAdapter;
19
20
21 public class MainActivity extends Activity {
22     private static final String TAG = "MainActivity";
23     ListView listView;
24     ListAdapter adapter;
25
26     @Override
27     public void onCreate(Bundle savedInstanceState) {
28         super.onCreate(savedInstanceState);
29
30         LinearLayout linearLayout = new LinearLayout(this);
31         linearLayout.setOrientation(LinearLayout.VERTICAL);
32
33         LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
34                 LinearLayout.LayoutParams.FILL_PARENT,
35                 LinearLayout.LayoutParams.WRAP_CONTENT);
36
37         listView = new ListView(this);
38         linearLayout.addView(listView, param);
39         this.setContentView(linearLayout);
40
41         // 从数据库获取联系人姓名和电话号码
42         Cursor cur = this.getContentResolver().query(People.CONTENT_URI, null,
43                 null, null, null);
44         adapter = new SimpleCursorAdapter(this,
45                 android.R.layout.simple_list_item_2, cur, new String[] {
46                         People.NAME, People.NUMBER }, new int[] {
47                         android.R.id.text1, android.R.id.text2 });
48         this.startManagingCursor(cur);
49         listView.setAdapter(adapter);
50
51         listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
52
53             public void onItemClick(AdapterView<?> arg0, View arg1,
54                     int position, long arg3) {
55
56                 // names=((CursorWrapper)listView.getItemAtPosition(position)).getColumnNames();
57                 // 从指针的封装类中获得选中项的电话号码并拨号
58                 CursorWrapper wrapper = (CursorWrapper) listView
59                         .getItemAtPosition(position);
60                 int columnIndex = wrapper.getColumnIndex(People.NUMBER);
61                 if (!wrapper.isNull(columnIndex)) {
62                     String number = wrapper.getString(columnIndex);
63                     Log.d(TAG, "number=" + number);
64                     // 判断电话号码的有效性
65                     if (PhoneNumberUtils.isGlobalPhoneNumber(number)) {
66                         Intent intent = new Intent(Intent.ACTION_DIAL, Uri
67                                 .parse("tel://" + number));
68                         startActivity(intent);
69                     }
70                 }
71             }
72         });
73     }
74 }

记得添加权限:

<!-- 点击拨号时,询问调用默认的程序还是调用本程序拨号 -->           <intent-filter>            <action android:name="android.Intent.Action.CALL_BUTTON" /><category android:name="android.Intent.Category.DEFAULT" />
</intent-filter><uses-permission android:name="android.permission.READ_CONTACTS" />

Android学习之适配器SimpleCursorAdapter相关推荐

  1. Android学习 —— 多种适配器方式实现ListView

    笔记摘要: 本文主要对ListView列表显示的实现进行了分析,对于列表显示,分为两个部分,第一个部分是整体布局,也就是ListView所在的布局,但ListView中的一个个横条Item布局也需要我 ...

  2. Android学习——Adapter适配器

    AdapterView: 容器控件,其整体效果由每一个子元素内容决定,子元素的形式由Adapter决定. AdapterView的子视图对象: ListView:以垂直滑动列表形式显示一组数据. Gr ...

  3. 【Android 学习】之ListView使用大全

    Android 学习之ListView使用大全 ListView是列表组件,是android中常用的组件,列表显示信息由三个部分组成. ListView组件. 适配器,用来将用来显示的数据映射到Lis ...

  4. Android学习系列(10)--App列表之拖拽ListView(上)

    研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨.       鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章. ...

  5. Android学习之网上商城(上)

    前言 又到了课设的时候,这次课设比较难受,因为两周时间中还有3门考试,在课设的时候还要复习,着实耗费了不少的精力,不过也收获多多,接下来总结一下本次课设中学到的东西 Android学习之网上商城(上) ...

  6. 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner

    目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...

  7. Android学习笔记(四九):通过Content Provider访问数据

    在上次笔记中,我们编写了自己的Provider,这次笔记,我们将通过Content Provider的Uri接口对数据进行访问,重写Android学习笔记(四二)中例子.在这里我们不在充分描述相关UI ...

  8. 2015最新Android学习线路图

    Android是一个以Linux为基础的半开源操作系统,主要用于移动设备,由Google和开放手持设备联盟开发与领导.据2011年初数据显示仅正式上市两年的操作系统Android已经跃居全球最受欢迎的 ...

  9. Android学习博客和文章存档

    [Android基础]Android总结篇 http://blog.csdn.net/codeemperor/article/details/51004189 Android最佳性能实践(一)--合理 ...

最新文章

  1. Android之自定义控件一起制作自定义标签
  2. 用putty生成密钥SSH远程登录(解决)
  3. 岭回归与Lasso回归
  4. Vue为v-html中标签添加CSS样式
  5. 如何从 0 到 1,搭建一个完整的 Kubernetes 集群?
  6. Mongotemplate mongodb的各种操作 模糊查询 精确查询
  7. IE下angularJS页面跳转的bug
  8. 编程猫海龟编辑器python_编程猫海龟编辑器
  9. POJ2182 HDU2711 Lost Cows【树状数组+线段树】
  10. 进阶03 System、StringBuilder类
  11. Web3D编程入门总结——WebGL与Three.js基础介绍
  12. 【防爬虫01】通过headers中的user-agent字段来反爬
  13. 易语言lol自动接受源码分享以及lolApi相关使用教程
  14. 最小二乘法——高斯-马尔可夫定理的证明,无偏估计、求系数的方差
  15. 谷歌表格快捷键_所有最好的Google表格键盘快捷键
  16. C语言求n的阶乘(n!)
  17. python分号怎么用_go、java已经python中分号的使用
  18. 苹果待处理订单要多久_苹果官网准备发货到发货要多久呀?
  19. [DP优化之平行四边形不等式]例题
  20. 实验六201771010101 白玛次仁

热门文章

  1. 编码——纠正网上的大量错误
  2. ASP.NET AJAX Advance Tips Tricks (9) DropDownList在Firefox下的奇怪现象和解决方案——谁的BUG?...
  3. 【OpenCV】基本数据类型
  4. 计算机网络协议是网民们签订的合同,关于网络协议,下列__________选项是正确的。A.是网民们签订的合同B.是计算机之间的相互通信需...
  5. (01)OpenGL es中只在指定区域渲染view
  6. php使用redis消息队列swoole,swoole+Redis实现实时数据推送
  7. python网络通信效率_Python之网络通信
  8. android html模板下载地址,Android HTML模板
  9. node获取图片路径_Deno 正式发布,彻底弄明白和 node 的区别
  10. spring事务 jdbc_Spring事务管理示例JDBC