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

利用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

android---简单的通讯录相关推荐

  1. Android Studio实现通讯录项目

    项目目录 一.项目概述 二.开发环境 三.详细设计 1.主界面的搭建 2.SQLite数据库 2.1.SQLite是什么? 2.2.为什么要用SQLite? 2.3.SQLite有什么特点? 3.SQ ...

  2. Android仿微信通讯录

    Android仿微信通讯录 分3部: 1.listview实现显示头像.名字(太简单,这里就不写了) 通讯录页面xml布局代码: <LinearLayout xmlns:android=&quo ...

  3. android聚合社交通讯录app,这5款APP让你抛弃手机自带通讯录

    或许,真的到了抛弃手机自带通讯录的时候了.除了昨天介绍的Contaqs,市场上功能丰富又智能.且操作简单的通讯录应用真的不少,下面就再向大家推荐5款iOS和Android平台上比较好的通讯录应用.即便 ...

  4. 基于 Android 系统手机通讯录管理软件【100010322】

    基于 Android 系统手机通讯录管理软件 第一章 绪论 1.1 项目研究背景 经过多年的发展,移动终端不再仅是通讯网络的终端,还将成为互联网的终端.因此,移动终端的应用软件和需要的服务将会有很大的 ...

  5. Android contacts 联系人 通讯录 源码 完全解析

    Android contacts 联系人 通讯录 源码 完全解析 1简介 2软件架构 3各功能模块分析 1联系人数据的显示 1联系人列表显示 2联系人详细信息数据的显示 2联系人数据的编辑和存储 1编 ...

  6. Android个人手机通讯录开发详解

    一.Android 个人手机通讯录开发 数据存储:SQLite 数据库 开发工具:Android Studio 二.Phone Module 简介 界面展示 文件结构简单分析 三.个人手机通讯录代码实 ...

  7. android换手机通讯录,神奇Android通讯录3.1互碰手机换名片

    iPhone版QQ通讯录的"对碰换名片"功能备受用户喜爱,Android版QQ通讯录3.1也加入对碰换名片功能,让名片交换更简单:此外,为了让手机好友之间找到网聊的 感觉,该版本还 ...

  8. android os开机画面,Android简单实现启动画面的方法

    本文实例讲述了Android简单实现启动画面的方法.分享给大家供大家参考,具体如下: 核心代码: package com.demo.app; import android.app.Activity; ...

  9. android 代码浏览,Webview实现android简单的浏览器实例代码

    WebView是Android中一个非常实用的组件,它和Safai.Chrome一样都是基于Webkit网页渲染引擎,可以通过加载HTML数据的方式便捷地展现软件的界面,下面通过本文给大家介绍Webv ...

  10. 简单的通讯录程序系统python

    用python做一个简单的通讯录程序系统 主要功能∶ 1.查询联系人资料 2.插入新的联系人 3.删除已有联系人 4.退出通讯录程序 print('''|---欢迎进入通讯录程序---| |---1. ...

最新文章

  1. Seaborn可视化图像调整图像大小(figure size)方法实战(Adjust the Figure Size)
  2. pyhton3 适配器模式编写
  3. php实现socket编程
  4. JavaScript数组去重算法实例
  5. Google今日更新PR值,帆船书会由1升到了3
  6. 2021广西对口中职高考成绩查询,教育资讯:2021广西本科对口中职分数线公布时间 几号查分...
  7. jQuery编写widget的一些窍门
  8. js 全屏 退出全屏
  9. Centos7 下cobbler安装及配置
  10. 局域网计算机如何传输文件,局域网如何快速传输文件|同一个局域网传输文件的方法...
  11. 代码与国家地区对照表
  12. 电脑格式化之后如何进行数据恢复【图文教程】
  13. Android 改变View的中心点
  14. R语言获取国内的股票数据
  15. 手游传奇有挂吗_传奇手游辅助工具
  16. 为什么90%的IT人员都不适合做老大?
  17. 双击进入共享计算机时提示无法访问错误(连接共享打印机)
  18. 当周杰伦把QQ音乐干翻的时候,作为程序猿我看到了什么?
  19. android 电量性能优化
  20. 解决:cannot import name ‘xxx‘ from ‘xxx‘

热门文章

  1. Linux dbm轻量级数据库介绍与使用
  2. SystemParametersInfo (SPI_GETNONCLIENTMETRICS... 在VC 2008 里不能正常工作
  3. java实体设置扩展属性setextattributes_transactionAttributes各属性意义及配置
  4. h5首页加载慢_H5网站制作注意了
  5. linux查看硬盘smart_Linux检测磁盘坏道工具用什么命令
  6. epoll监听文件_epoll使用详解
  7. 语言省考安徽考区_安徽省中小学新任教师公开招聘统一笔试 中学信息技术学科考试大纲...
  8. 【caffe-matlab】目标检测R-FCN算法于Windows下配置
  9. DICOM的常用Tag分类和说明
  10. Windows 聚焦的锁屏壁纸设置为桌面壁纸