android---简单的通讯录

遗留问题:获取头像及其他信息

利用adapter和Cursor来获取联系人的姓名和手机号,重在复习之前学过的内容加深自己的理解.

其中需要注意的部分:
1.adapter中的getview的优化问题,用到tag这一属性
2.onBackPressed()返回方法的重写,使得程序更加人性化

下面是主要代码
1.adapter

public class MyAdapter extends BaseAdapter {private List<PhoneInfo> data;private Context context;public MyAdapter(List<PhoneInfo> data,Context context) {this.data = data;this.context = context;}@Overridepublic int getCount() {return data.size();}@Overridepublic PhoneInfo getItem(int position) {return data.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {phonedemo demo;if (convertView==null) {convertView = LayoutInflater.from(context).inflate(R.layout.cell, null);demo = new phonedemo();demo.name = (TextView) convertView.findViewById(R.id.name);demo.number = (TextView) convertView.findViewById(R.id.number);demo.img = (ImageView) convertView.findViewById(R.id.imageView1);demo.name.setText(data.get(position).getName());demo.number.setText(data.get(position).getNumber());
//          demo.img.setImageResource(data.get(position).getId());//利用tag达到循环利用资源convertView.setTag(demo);}else {//利用tag达到循环利用资源demo = (phonedemo) convertView.getTag();demo.name.setText(data.get(position).getName());demo.number.setText(data.get(position).getNumber());
//          demo.img.setImageResource(data.get(position).getId());}return convertView;}public static class phonedemo{TextView name,number;ImageView img;}
}

2.获取联系人

// 用于存储封装的联系人的集合public static List<PhoneInfo> data = new ArrayList<PhoneInfo>();/*** 获取联系人数据,包括名字和号码,后期添加其他信息* * @param context*/public static void getcontact(Context context) {// getContentResolver()搜索系统的数据库,query相当于设置搜索条件// 这里是全部搜索Cursor cursor = context.getContentResolver().query(Phone.CONTENT_URI,null, null, null, null);String name;String number;while (cursor.moveToNext()) {// 获取搜索结果的信息,通过对应的字段值来获取name = cursor.getString(cursor.getColumnIndex(Phone.DISPLAY_NAME));number = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));// 将获取的结果加入集合中data.add(new PhoneInfo(name, number));}}

3,返回方法

private long lasttime = 0;@SuppressLint("NewApi")@Overridepublic void onBackPressed() {if (lasttime<=0) {Toast.makeText(this, "再次点击返回", Toast.LENGTH_SHORT).show();lasttime = System.currentTimeMillis();}else {long currenttime = System.currentTimeMillis();if (currenttime-lasttime<1000) {//带有动画的返回finishAfterTransition();}else {Toast.makeText(this, "再次点击返回", Toast.LENGTH_SHORT).show();lasttime = System.currentTimeMillis();}}}

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/-niuli/p/4856427.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win phone 获取并且处理回车键事件

参考自&#xff1a;http://www.cnblogs.com/mohe/archive/2013/03/18/2966540.html 实用场景,比如输入帐号和密码啦,输入搜索关键字啦.protected override void OnKeyDown(KeyEventArgs e) {if (e.Key Key.Enter){MessageBox.Show("我是windows phone 回车键"); …

【2020年】最新中国科学院大学学位论文写作规范

最近在完成国科大博士论文写作的时候&#xff0c;有一些心得体会&#xff0c;特此总结下来&#xff0c;以飨读者&#xff0c;尤其是可爱的学弟学妹们。需要注意的是&#xff0c; 以下仅仅是我自己的心得而已&#xff0c;仅供参考。 1. 首先推荐大家使用国科大的Latex模板&…

谈谈Java基础数据类型

Java的基本数据类型 类型意义取值boolean布尔值true或falsebyte8位有符号整型-128~127short16位有符号整型-pow(2,15)~pow(2,15)-1int32位有符号整型-pow(2,31)~pow(2,31)-1long64位有符号整型-pow(2,63)~pow(2,63)-1float32位浮点数IEEE754标准单精度浮点数double64位浮点数IE…

用fft对信号进行频谱分析实验报告_示波器上的频域分析利器,Spectrum View测试分析...

简介&#xff1a;【Spectrum View技术文章系列】从基础篇开始&#xff0c;讲述利用示波器上的Spectrum View功能观测多通道信号频谱分析正文&#xff1a;示波器和频谱仪都是电子测试测量中必不可少的测试设备&#xff0c;分别用于观察信号的时域波形和频谱。时域波形是信号最原…

DataTable RowFilter 过滤数据

用Rowfilter加入过滤条件 eg&#xff1a; string sql "select Name,Age,Sex from UserInfo"; DataTable dt DataAccess.GetDataTable(sql);//外部方法&#xff08;通过一条查询语句返回一个DataTable&#xff09; dt.DefaultView.RowFilter "Sex女"; dt…

platform_device与platform_driver

做Linux方面也有三个多月了&#xff0c;对代码中的有些结构一直不是非常明确&#xff0c;比方platform_device与platform_driver一直分不清关系。在网上搜了下&#xff0c;做个总结。两者的工作顺序是先定义platform_device -> 注冊 platform_device->&#xff0c;再定义…

复盘caffe安装

最近因之前的服务器上的caffe奔溃了&#xff0c;不得已重新安装这一古老的深度学习框架&#xff0c;之前也尝试了好几次&#xff0c;每次都失败&#xff0c;这次总算是成功了&#xff0c;因此及时地总结一下。 以下安装的caffe主要是针对之前虹膜分割和巩膜分割所需的caffe版本…

HP P2000 RAID-5两块盘离线的数据恢复报告

1. 故障描述本案例是HP P2000的存储vmware exsi虚拟化平台&#xff0c;由RAID-5由10块lT硬盘组成&#xff0c;其中6号盘是热备盘&#xff0c;由于故障导致RAID-5磁盘阵列的两块盘掉线&#xff0c;表现为两块硬盘亮黄灯。 经用户方维护人员检测&#xff0c;故障硬盘应为物理故障…

微智魔盒骗局_微智魔盒官宣

原标题&#xff1a;微智魔盒官宣微智魔盒官方宣传视频微达国际集团创建于2011年&#xff0c;是一家坚持创新的集科研、产销、服务为一体的智能化产业平台&#xff0c;致力于国际领先的专注人工智能领域的产业投资、项目孵化、教育培训&#xff0c;并提供终极解决方案。集团创新…

瑞柏匡丞_移动互联的发展现状与未来

互联网作为人类文明史上最伟大、最重要的科技发明之一&#xff0c;发展到今天&#xff0c;用翻天覆地来形容并不过分。而作为传统互联网的延伸和演进方向&#xff0c;移动互联网更是在近两年得到了迅猛的发展。如今&#xff0c;越来越多的用户得以通过高速的移动网络和强大的智…

android 进程间通信数据(一)------parcel的起源

关于parcel&#xff0c;我们先来讲讲它的“父辈” Serialize。 Serialize 是java提供的一套序列化机制。但是为什么要序列化&#xff0c;怎么序列化&#xff0c;序列化是怎么做到的&#xff0c;我们将在本文探讨下。 一&#xff1a;java 中的serialize 关于Serialize这个东东&a…

为什么torch.nn.Linear的表达形式为y=xA^T+b而不是常见的y=Ax+b?

今天看代码&#xff0c;对比了常见的公式表达与代码的表达&#xff0c;发觉torch.nn.Linear的数学表达与我想象的有点不同&#xff0c;于是思索了一番。 众多周知&#xff0c;torch.nn.Linear作为全连接层&#xff0c;将下一层的每个结点与上一层的每一节点相连&#xff0c;用…

Leetcode47: Palindrome Linked List

Given a singly linked list, determine if it is a palindrome. 推断一个链表是不是回文的&#xff0c;一个比較简单的办法是把链表每一个结点的值存在vector里。然后首尾比較。时间复杂度O(n)。空间复杂度O(n)。 /*** Definition for singly-linked list.* struct ListNode {…

内存颗粒位宽和容量_SDRAM的逻辑Bank与芯片容量表示方法

1、逻辑Bank与芯片位宽讲完SDRAM的外在形式&#xff0c;就该深入了解SDRAM的内部结构了。这里主要的概念就是逻辑Bank。简单地说&#xff0c;SDRAM的内部是一个存储阵列。因为如果是管道式存储(就如排队买票)&#xff0c;就很难做到随机访问了。阵列就如同表格一样&#xff0c;…

[Unity菜鸟] Time

1. Time.deltaTime 增量时间 以秒计算&#xff0c;完成最后一帧的时间(秒)(只读) 帧数所用的时间不是你能控制的。每一帧都不一样&#xff0c;游戏一般都是每秒60帧&#xff0c;也就是updata方法调用60次&#xff08;假如你按60帧来算 而真实情况是不到60帧 那么物体就不会运动…

【转】七个例子帮你更好地理解 CPU 缓存

我的大多数读者都知道缓存是一种快速、小型、存储最近已访问的内存的地方。这个描述相当准确&#xff0c;但是深入处理器缓存如何工作的“枯燥”细节&#xff0c;会对尝试理解程序性能有很大帮助。在这篇博文中&#xff0c;我将通过示例代码来说明缓存是如何工作的&#xff0c;…

Pytorch——对应点相乘和矩阵相乘

1. 点乘&#xff0c;对应元素相乘&#xff0c;不求和 import torcha torch.Tensor([[1,2], [3,4], [5,6]]) b1 a.mul(a)// b2a*a b1 Out[79]: tensor([[ 1., 4.],[ 9., 16.],[25., 36.]]) b2 Out[80]: tensor([[ 1., 4.],[ 9., 16.],[25., 36.]]) 以上两种方法都可以表…

mysql初始化错误【一】Can't find error-message file '/usr/local/mysql/errmsg.sys'

环境&#xff1a;CentOS 7.2MySQL 5.7.18从mysql官方网站下载rpm包到服务器本地&#xff0c;依次安装下面的RPM包&#xff1a;mysql-community-common-5.7.18-1.el7.x86_64.rpmmysql-community-server-5.7.18-1.el7.x86_64.rpmmysql-community-client-5.7.18-1.el7.x86_64.rpmm…

双极型adc与stm32_关于STM32 双ADC同步规则转换两路数据的问题?

因系统要求需升级ADC的采样方式(以前方式&#xff1a;扫描方式&#xff0c;TIMER2触发ADC软启动&#xff0c;2通道规则序列&#xff0c;DMA传完中断)&#xff0c;为了进一步实现两路信号的同步性能&#xff0c;采样STM32 双ADC同步规则转换。(timer2触发ADC软启动&#xff0c;2…

面试金典--11.5

题目描述&#xff1a;给定排序后的字符串数组&#xff0c;中间有一些空串&#xff0c;要求找到给定字符串的位置 思路&#xff1a; &#xff08;1&#xff09;遍历&#xff0c;最慢的 &#xff08;2&#xff09;二分查找&#xff0c;当mid处为空串&#xff0c;就找到最近的非空…