Android添加联系人信息并读取

简单步骤:Android studio 内容提供者 - 实现建立手机通讯录界面,读取系统联系人 本篇文章将会介绍如何使用Android studio 内容提供者 实现 “读取手机通讯录” 的项目,以列表的形式来显示 Android 设备通讯录中暴露的数据, 同时由于版本和补丁的迭代与更替,很多细节也需要我们修改与重写。 阅读详情
Android添加联系人信息并读取
效果图

题目
1. 创建一个File文件,路径为/mnt/sdcard/temp/zhiyuan.txt
2. 进入主页面后自动从File文件中读取联系人数据,每个item只显示,姓名和电话。如果,你在添加联系人时,填写了备注,那么item的姓名显示成你保存的备注。否则显示姓名。
3.  添加联系人功能,布局最上方有一个添加联系人按钮,下面是ListView, 当点击添加联系人按钮时,跳转至新页面,输入姓名,电话,备注(电话和 姓名不能为空,电话只能为数字)。确定后保存File文件,并且直接回退到 主页面
4. 当点击每个item时,跳转至详细页面,显示当前联系人的名字、电话、 备注。

代码演示
1. 新建一个Module命名为AndroidContact
在XML布局文件activity_main中添加一个Button按钮命名为添加联系人信息
再添加一个ListView用于显示接收的联系人信息

2.新建一个activity_item行布局文件用于将联系人信息以行布局的形式显示在ListView列表上
并添加两个TextView用于显示联系人姓名和电话

3.新建一个AddActivity类用于跳转添加联系人信息
再新建一个DetialActivity类用于跳转显示联系人信息详情

4.在XML布局文件activity_add中添加三个EditText用于输入联系人姓名,电话,备注
再添加一个Button用于将输入的联系人信息保存到File文件中

5.在AddActivity中实例化EditText控件,Button控件,并给Button添加监听
在监听中实例化File对象,参数为路径名
判断文件是否存在,如果存在则存储数据并且追加数据属性
把文件 保存置为追加,true为追加
添加一个判断,如果联系人姓名,电话的内容不为空,则存储,备注信息可以为空
使用Toast提示存储是否成功
使用Finish();属性销毁页面返回主类
package com.example.cxy.androidcontact;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class AddActivity extends AppCompatActivity implements View.OnClickListener {
    private EditText ed_Name, ed_Phone, ed_Remark;
    private Button btn_Save;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add);
        initView();
    }

    private void initView() {
        ed_Name = (EditText) findViewById(R.id.editName);
        ed_Phone = (EditText) findViewById(R.id.editPhone);
        ed_Remark = (EditText) findViewById(R.id.editRemark);
        btn_Save = (Button) findViewById(R.id.btn_save);
        btn_Save.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        //判断文件是否存在,如果存在则存入数据,且为追加属性
        try {
            File file = new File("/mnt/sdcard/contact/contact.txt");
            if (!file.exists()) {
                file = new File("/mnt/sdcard/contact");
                file.mkdir();
                file = new File("/mnt/sdcard/contact/contact.txt");
                file.createNewFile();
            }
            //把你的文件保存置为追加。true则为追加
            FileOutputStream out = 
Android调用系统通讯录获取联系人姓名和号码 首先使用下面代码启动系统通讯录。 阅读详情

相关推荐

Android-ContentProvider读取和插入手机联系人

目标效果:   先在模拟器随便添加两个联系人,运行程序,再打开联系人,发现多了联系人“张三”,并且日志输出了三给安溪人的姓名和手机号码还有号码类型。(运行多次,所以插入的id不为3了) 1.activity_main.xml页面暂时用不到,所以不需要改动。 2.MainActivity.java页面编写查询和添加方法。 MainActivity.java页面:

Vivinia的博客 2912

Android实现读取联系人并按照拼音排序

然后,我们使用PinyinUtil类的getPinyin()方法获取联系人名字的拼音,并将联系人信息保存到Contact对象中。在上述示例中,我们在MainActivity的onCreate()方法中调用ContactsHelper类的getSortedContacts()方法获取排序后的联系人列表,并遍历输出每个联系人的名字。最后,我们可以在Activity或Fragment中调用ContactsHelper类的getSortedContacts()方法,获取按照拼音排序后的联系人列表。

DevScribe的博客 335

Sourcetree与Gitee的完美协作:从身份验证到推送成功的全流程指南

本文提供了一份详细的Sourcetree与Gitee协作全流程指南,重点解决身份验证失败、Git版本配置及远端仓库设置等常见问题。通过分步讲解,帮助用户掌握从克隆、提交到成功推送的完整操作,并整合了使用个人访问令牌进行身份验证等关键热词信息,确保Windows与MacOS用户都能顺畅完成代码管理。

m2n3b4v5c6的博客 708

VoIP概述

VoIP统一通信与VoIPVoIP与传统电话比较VoIP各项产品设备的类型及应用 统一通信与VoIP 统一通信指的是把计算机与传统通信技术统一成一体的新通信模式,融合计算机网络与传统通信网络在一个网络平台上,实现电话、传真、数据传输、音视频会议、呼叫中心、即时通信等众多应用服务 VoIP又称IP电话或IP网络电话,是Voice Over IP的缩写,这种技术通过对语音信号进行编码数字化,压缩处理成压缩帧,然后转换成为IP数据包在TCP/IP网络上进行传输,从而达到了在IP网络上进行语音通信目的 VoIP与传

kaminao的博客 4356

用示波器抓取同步Buck自举电容波形:从充电回路到SW节点振铃的完整分析

本文通过实测TI TPS54561和MPS MPQ4572同步Buck芯片,详细解析了自举电容在充电、维持和放电三个工作阶段的波形特征。重点揭示了电感泄放回路与充电回路重叠时,在SW节点引发的振铃现象及其产生机理,并提供了串联阻尼电阻等有效的工程抑制方法。文章结合示波器实测,为硬件工程师提供了从波形观测到问题调试的完整实践指南。

weixin_29276847的博客 371

Cadence IC618/Spectre231安装避坑指南:详解License配置、环境变量隔离与依赖检查

本文详细介绍了Cadence IC618/Spectre231的安装与配置避坑指南,包括许可证系统精妙控制、环境隔离模块化实践、依赖管理进阶技巧以及长期维护的黄金法则。通过实战案例和解决方案,帮助工程师构建稳定可靠的EDA工作环境,提升芯片设计效率。

weixin_28683065的博客 460

思科 MIB 库

思科 MIB

m0_54931486的博客 769

【CASS精品教程】013:CASS9.1生成标准图幅案例教程

在CASS中,可以很方便的生成标准图幅,如50*50。本文演示cass中,根据测区范围标准图幅生成过程。

智慧空间实验室 1万+

13.0 针对跳转不存在Activity崩溃处理,改成弹Toast提示,去掉崩溃弹窗,避免app崩溃退出

在开发过程中,在app跳转到某个没注册的Acitivity时,往往会出现崩溃的场景,这样也不好,接下来就从framework中来拦截这个崩溃,改成toast提示,

安卓兼职framework和app工程师的博客 48

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: Activity生命周期详解
下一篇: SDK中添加docs文件
Android开发-CXY
博客等级 码龄10年 33粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值