搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
IT小白
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
计算机体系结构-第五章-指令级并行_bht btb
2
招聘技术革新:AI简历筛选,让人力资源管理更高效_ai做简历筛选
3
百川智能RAG方案总结:搜索出生的百川智能大模型RAG爬坑之路
4
Linux课程四课---Linux第一个小程序(进度条)
5
C语言控制台简单代码!_c怎么在控制段写代码
6
gitHub学习之SSH key的设置_enter passphrase (empty for no passphrase):
7
【Mysql数据库基础03】分组函数(聚合函数)、分组查询
8
LG解bl锁并获取root_lgg6韩版 root
9
Android开发规范:API接口通用设计规范_安卓 api
10
记录学习心得_学习心得 网上记录
当前位置:
article
> 正文
联系人的获取--ContentProvider
作者:IT小白 | 2024-03-16 00:48:01
赞
踩
联系人的获取--ContentProvider
ContentProvider:
1、ContentProvider为存储和读取数据提供统一的接口;
2、使用ContentProvider,应用程序可以实现数据共享;
3、android内置的许多数据都是使用ContentProvider形式,供开发者调用(如视频、音频、图片、通讯录等);
URI
:Universal Resource Identifier
要操作的数据,Android上可用的每种资源-图像,视频片段、网络地址等都可以用Uri来表示;
e.g:联系人URI 为content://contacts/people
1:需要操作的ContentProvider;2:对ContentProvider中的什么数据进行操作
由以下几个部分组成:
ContentProvider(内容提供者)的scheme已经由Android规定,scheme为:content://
主机名(authority)用于唯一标识这个ContentProvider,外部调用者可以根据这个标识来找到它;contacts
路径(path)可以用来表示我们要操作的数据:/people
使用ContentResolver操作ContentProvider中的数据:
当外部应用需要对ContentProvider中的数据进行添加、删除、修改和查询操作时,可以使用ContentResolver类来完成(使用getContentResolver()方法获取);
ContentResolver类提供了与ContentProvider类相同签名的四个方法:
public Uri insert(Uri uri,ContentValues values):该方法用于往ContentProvider添加数据。
public int delete(Uri uri,String selection,String[] selectionArgs);该方法用于从ContentProvider删除数据。
public int update(Uri uri,ContentValues values,String selection,String[] selectionArgs);该方法用于更新ContentProvider中的数据。
public Cursor query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder):该方法用于从ContentProvider获取数据。
e.g:
ContentResolver resolver = getContentResolver();//获取ContentResolver
Uri uri = Uri.parse(“content://contacts/people”);//要操作的ContentProvider
ContentValues values = new ContentValues();
values.put(“name”,”sunrise");
values.put(“number”,”18617191218”);
resolver.insert(uri,values);
监听ContentProvider中数据的变化
调用getContentResolver().notifyChange(uri,null)来通知注册在此URL上的访问者。
Listview SimpleAdapter:
/**SimpleAdapter属于Adapter适配器的一种,是数据和
listview
之间的桥梁
* 第一个参数:
Activitiy
的上下文
* 第二个参数:生成的一个Map列表选项
* 第三个参数:
listview
一行的分布样式,可以自己定义,可以使用Android系统本身
* 第四个参数:定义Map中有哪些key
* 第五个参数:用来填充的组件,对应于第四个参数中的key
**/
adapter
=
new
SimpleAdapter(
this
, getData(),
R.layout.
listview
,
new
String[]{
"number"
,
"name"
},
new
int
[]{R.id.
number
,
R.id
.
name
});
getData():返回一个List<Map<String,String>>的一个列表。
/**定义存储数据的List,并返回给SimpleAdapter**/
List<Map<String,String>> contact =
new
ArrayList<Map<String,String>>();
/**使用ContentResolver操作ContentProvider中的数据**/
ContentResolver resolver = getContentResolver();
/**使用query获取ContentProvider的数据
Android2.0以后联系人就由ContactsContract类替换了People类
**/
Cursor c = resolver.query(ContactsContract.Contacts.
CONTENT_URI
,
null
,
null
,
null
,
null
);
/*获取特定的数据列,并按照联系人姓名排列*/
Cursor c = resolver.query(ContactsContract.Contacts.
CONTENT_URI
,
PHONES_PROJECTION
,
null
,
null
,
"display_name desc"
);
第一个参数:URL,确定要操作的数据(指定所要操作的ContentProvider)
第二个参数:指定列的数据
第三个参数:指定行的数据
第四个参数:
第五个参数:可以定义返回数据的排列
然后使用Cursor来对我们的联系人数据进行处理:
行、列;
e.g:获取联系人姓名
/*首先获取联系人处于该数据库的第几列*/
int
displayNameColumn = c.getColumnIndex(ContactsContract
.Contacts.
DISPLAY_NAME
);
/*然后获取该列的数据即是要取得的联系人的姓名(行数由c.movoToNext()来交互)*/
String name = c.getString(displayNameColumn)
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/IT小白/article/detail/245815
推荐阅读
article
如何解决国标
GB28181
视频
平台
EasyGBS
运行中
端
口
不够用的情况?_
视频
控制器输出
口
不够如何解...
大家知道
EasyGBS
视频
平台
有两种
视频
传输模式,包括TCP、UDP,可以自由进行切换选择。
EasyGBS
运行过程中,选...
赞
踩
article
【C++】
AVL
树
和
红
黑树
(
插入
和
测试
详解)_
红
黑树
测试
...
本文介绍了
AVL
树
和
红
黑树
的
插入
和
测试
方法。
AVL
树是一种平衡二叉搜索树,
红
黑树
是在
AVL
树的基础上做出的改进。了解这两...
赞
踩
article
【Mac 的
Wifi
功能无法
打开
解决办法
(保姆级手把手教学)】_
苹果电脑
wifi
状态
关闭
打不开
...
Mac突然无缘无故
wifi
功能
关闭
,并且无法
打开
,注意是在系统偏好设置-网络-“
打开
Wi-Fi”按钮怎么点也无法
打开
,我...
赞
踩
article
数据结构
红黑树
(
RBTree
)的原理与
实现
...
学习
红黑树
之前你应该保证你学过AVL树,也就是平衡二叉搜索树
数据结构
AVL树AVL树是一棵高度平衡的二叉搜索树,其要求...
赞
踩
article
阿里云
视频
上传
实战_
createuploadvideo
-
获取
音
视频
上传
地址
和凭证...
项目实战之阿里云
视频
上传
项目优化实录_
createuploadvideo
-
获取
音
视频
上传
地址
和凭证createupl...
赞
踩
article
u
niapp +
u
view
u
i ——
u
-
tabbar
的使用...
u
niapp +
u
view
u
i ——
u
-
tabbar
的使用。_
u
-
tabbar
u
-
tabbar
...
赞
踩
article
在数据科学领域,
为什么
GPU
计算
速度比
CPU
快许多的一个最简单解释_
gpu
计算
为什么
比
cpu
快...
为了回答这个问题,我们需要知道几个知识:1、一个
CPU
通常只有 几个核2、一个
GPU
通常有 几千个核 (为了容易理解,暂...
赞
踩
article
算力
资源
A100
/
V100
/910都不限时
免费
使用的
开源
社区
,你还不知道?_
免费
a100
...
算力
免费
还奖钱?GPU/NPU
算力
都
免费
还不限时,还奖励每周200-1000现金!_
免费
a100
免费
a100
...
赞
踩
article
安卓手把手教你结合
阿里
云
OSS
存储
实现
视频
(音频,
图片
)的
上传
与
下载
_osscredentialpr...
首先,明白
阿里
云
OSS
是个什么鬼
阿里
云
对象
存储
(Object Storage Service,简称
OSS
),是
阿里
云
对外...
赞
踩
article
自动
售货机
方案
/设计/
开发
/项目_
智能
售货机
开发
文档...
随着物联网和大数据时代的到来,人工
智能
的兴起,
智能
设备已环绕在人们衣食住行的各个方面。自助
售货机
解决
方案
是解决线上消费和...
赞
踩
article
C++:
红黑树
_
c++
红黑树
...
1.
红黑树
的概念
红黑树
,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任...
赞
踩
article
jupyter
notebook
在
Linux
服务器
后台
保持
运行
_
jupyter
中断后能继续
运行
吗...
Linux
终端的
jupyter
notebook
经常随着终端连接断开而结束,如何让
jupyter
在
服务器
后台
保持
运行
呢...
赞
踩
article
计算机
视觉:
VGGNet
网络
详解...
VGGNet
是牛津大学视觉几何组(Visual Geometry Group)提出的模型,故简称
VGGNet
, 该模型在...
赞
踩
article
GitHub
使用基础[
Vscode
]_
vscode
github
...
github
Vscode
使用(适合初学者)_
vscode
github
vscode
github
...
赞
踩
article
《
科研
伦理
与
学术
规范》
期末考试
答案2023_除
了
兜底条款,《办法》规定
了
对
学术
不端
行为
...
26单选(2 分)某
学术
杂志的评稿人同时是某高校相关专业的硕士生导师,在评判一个稿件的时候,他发现该作者研究的题目很有价...
赞
踩
article
Typescript
简单介绍及其
开发
环境
的
搭建_
typescript
开发
环境
...
Typescript
的
type是类型
的
问题,TypeScript 是一种给JavaScript 添加特性
的
语言扩展,T...
赞
踩
article
LDAP
及
CDH
中服务的权限认证_
ldap
hive
no
valid
privileges
...
主要对
LDAP
进行了介绍,重点选择 Open
LDAP
进行了说明,重点是对 Open
LDAP
的安装与配置进行了详细的说...
赞
踩
article
Linux
下
ifconfig
,
netstat
无法正常使用
解决办法
...
【代码】
Linux
下
ifconfig
,
netstat
无法正常使用
解决办法
。
Linux
下
ifconfig
,
netstat
...
赞
踩
article
C++
程序
崩溃
调用
堆
栈
打印_
windows
崩溃
记录
调用
栈
信息
...
C++
程序
崩溃
调用
堆
栈
打印_
windows
崩溃
记录
调用
栈
信息
windows
崩溃
记录
调用
栈
信息
...
赞
踩
article
Jupyter
Notebook
如何设置
目录
(包含
目录
插件
命令)_
jupyter
notebook
...
Jupyter
Notebook
如何设置
目录
(包含
目录
插件
命令)_
jupyter
notebook
目录
插件
jupyte...
赞
踩
相关标签
国标GB28181
RTSP
c++
开发语言
数据结构
macos
二叉树
阿里云
音视频
云计算
uni-app
前端
微信小程序
GPU计算
CPU
数学科学
矩阵
向量
大数据
人工智能
自动售货机
自动售货机APP
自动售货机小程序
自动售货机系统项目