Android学习之适配器SimpleCursorAdapter
三. 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相关推荐
- Android学习 —— 多种适配器方式实现ListView
笔记摘要: 本文主要对ListView列表显示的实现进行了分析,对于列表显示,分为两个部分,第一个部分是整体布局,也就是ListView所在的布局,但ListView中的一个个横条Item布局也需要我 ...
- Android学习——Adapter适配器
AdapterView: 容器控件,其整体效果由每一个子元素内容决定,子元素的形式由Adapter决定. AdapterView的子视图对象: ListView:以垂直滑动列表形式显示一组数据. Gr ...
- 【Android 学习】之ListView使用大全
Android 学习之ListView使用大全 ListView是列表组件,是android中常用的组件,列表显示信息由三个部分组成. ListView组件. 适配器,用来将用来显示的数据映射到Lis ...
- Android学习系列(10)--App列表之拖拽ListView(上)
研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨. 鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章. ...
- Android学习之网上商城(上)
前言 又到了课设的时候,这次课设比较难受,因为两周时间中还有3门考试,在课设的时候还要复习,着实耗费了不少的精力,不过也收获多多,接下来总结一下本次课设中学到的东西 Android学习之网上商城(上) ...
- 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner
目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...
- Android学习笔记(四九):通过Content Provider访问数据
在上次笔记中,我们编写了自己的Provider,这次笔记,我们将通过Content Provider的Uri接口对数据进行访问,重写Android学习笔记(四二)中例子.在这里我们不在充分描述相关UI ...
- 2015最新Android学习线路图
Android是一个以Linux为基础的半开源操作系统,主要用于移动设备,由Google和开放手持设备联盟开发与领导.据2011年初数据显示仅正式上市两年的操作系统Android已经跃居全球最受欢迎的 ...
- Android学习博客和文章存档
[Android基础]Android总结篇 http://blog.csdn.net/codeemperor/article/details/51004189 Android最佳性能实践(一)--合理 ...
最新文章
- Android之自定义控件一起制作自定义标签
- 用putty生成密钥SSH远程登录(解决)
- 岭回归与Lasso回归
- Vue为v-html中标签添加CSS样式
- 如何从 0 到 1,搭建一个完整的 Kubernetes 集群?
- Mongotemplate mongodb的各种操作 模糊查询 精确查询
- IE下angularJS页面跳转的bug
- 编程猫海龟编辑器python_编程猫海龟编辑器
- POJ2182 HDU2711 Lost Cows【树状数组+线段树】
- 进阶03 System、StringBuilder类
- Web3D编程入门总结——WebGL与Three.js基础介绍
- 【防爬虫01】通过headers中的user-agent字段来反爬
- 易语言lol自动接受源码分享以及lolApi相关使用教程
- 最小二乘法——高斯-马尔可夫定理的证明,无偏估计、求系数的方差
- 谷歌表格快捷键_所有最好的Google表格键盘快捷键
- C语言求n的阶乘(n!)
- python分号怎么用_go、java已经python中分号的使用
- 苹果待处理订单要多久_苹果官网准备发货到发货要多久呀?
- [DP优化之平行四边形不等式]例题
- 实验六201771010101 白玛次仁
热门文章
- 编码——纠正网上的大量错误
- ASP.NET AJAX Advance Tips Tricks (9) DropDownList在Firefox下的奇怪现象和解决方案——谁的BUG?...
- 【OpenCV】基本数据类型
- 计算机网络协议是网民们签订的合同,关于网络协议,下列__________选项是正确的。A.是网民们签订的合同B.是计算机之间的相互通信需...
- (01)OpenGL es中只在指定区域渲染view
- php使用redis消息队列swoole,swoole+Redis实现实时数据推送
- python网络通信效率_Python之网络通信
- android html模板下载地址,Android HTML模板
- node获取图片路径_Deno 正式发布,彻底弄明白和 node 的区别
- spring事务 jdbc_Spring事务管理示例JDBC