搜索
查看
编辑修改
首页
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
nginx rewrite规则_nginx中rewrite规则详解
2
OpenCV,OpenGL,OpenCL,OpenAL,OpenMP…………还有多少OpenXX_opengl opencv openai opencl
3
版本控制工具使用简要说明_deveco studio 使用gitee
4
图像的几何变换_rows, cols = img.shape[:2]
5
(三十一) NavigationView 原理分析_android中 navigationview 跟activity不在同一层是怎么回事
6
form表单提交同步校验异步校验_validatefields 异步
7
鸿蒙开发环境搭建,DevEco Studio IDE下载与安装——鸿蒙开发日记_deveco studio node.js
8
华为cipher解密工具_Android、iPhone和Java三个平台一致的加密工具
9
神经网络分类_神经网络数据分类
10
Androidd五大布局LinearLayout,RelativeLayout,AbsolutLayout,FrameLayoutTablelayout_鸿蒙tablelayout如何如何按权重分配剩余空间
当前位置:
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
怎么
画
龙
的
画
奶奶帮我擦
java
,
怎么
一步
一步
教孩子
用
蜡笔简单
画
一条龙
(步骤图解)......
庆祝农历春节,常会有舞龙舞狮表演。在传统文化中,龙是能呼风唤雨
的
神圣吉祥
的
动物,我们还自称为“龙
的
传人”。农历年前夕,我...
赞
踩
article
【
java
毕业
设计
】基于
B
/S结构+
my
s
ql
的医院
电子商城
系统
设计
与实现(程序源码)-医院
电子商城
...
随着社会的发展,计算机的优势和普及使得
电子商城
系统
的开发成为必需。
电子商城
系统
主要是借助计算机,通过对信息进行管理。减少...
赞
踩
article
【
u
niapp】
u
view
自定义
tabBar
底部导航栏_
u
view
u
-
tabbar
...
切换调用的钩子函数,参数对应下标;在
u
view
1.x 中,不用在。跳转到对应页面,也需要配置。:对应当前激活的图标;:...
赞
踩
article
【
Android
】
AOSP
架构...
AOSP
提供
Android
移动平台的完整且功能完备的实现。【
Android
】
AOSP
架构 ...
赞
踩
article
kubernetes
(
k8s
)
安装
教程
_
安装
kubernetes
...
kubernetes
(
k8s
)
安装
教程
——亲测_
安装
kubernetes
安装
kubernetes
...
赞
踩
article
Jupyter
Notebook
局域网
访问
服务器
(
win10
)...
windows10
服务器
配置局域网jupyter
Notebook
的远程
访问
环境_jupyter notebook局域网...
赞
踩
article
【愚公系列】2023年
12
月
HarmonyOS
教学课程 039-
ArkUI
事件
(
单一
手势
)
...
应用程序的
手势
操作是指在移动设备上使用手指或
手势
进行与应用程序交互的方式。
手势
操作可以包括点击、滑动、双击、捏合等动作,...
赞
踩
article
Harmon
y
OS开发(八):
动画
及网络_
arkui
rotate
({ x...
在ArkUI中,产生
动画
的方式是改变组件属性值并且指定相关的
动画
参数。当属性值发生变化后,按照
动画
参数,从原来的状态过渡...
赞
踩
article
重编内核导致
ubuntu
有线连接不出现的问题_
intel
i225v
网卡
驱动
...
i225v
ubuntu
有线网路图标 有线
网卡
驱动
_
intel
i225v
网卡
驱动
intel
i225v
网卡
驱动
...
赞
踩
article
Jupyter
Lab
设置切换
虚拟环境
_
jupyter
lab 切换
虚拟环境
...
在进行数据科学任务时,一般会用到交互式开发环境,即
Jupyter
Notebook,
Jupyter
lab是Jupyte...
赞
踩
article
Uni
-
app
开发
Canvas
当子
组件
示例
,
点点
绘制
图形...
Uni
-
app
开发
Canvas
当子
组件
示例
,
点点
绘制
图形
Uni
-
app
开发
Canvas
当子
组件
示例
,
点点
绘制
图形 ...
赞
踩
article
《
科研
伦理
与
学术
规范
》
网课
第五章
课后习题答案...
《
科研
伦理
与
学术
规范
》
网课
第五章
课后习题答案 &nb...
赞
踩
article
Zabbix6.0
升级
到Zabbix
6.4
_
zabbix6.0
升级
6.4
...
若
升级
Zabbix proxy版本,需也停止Zabbix proxy服务。Centos8默认的PHP是7.2要安装PHP...
赞
踩
article
Waffle
使用初体验_ts-
node
/
register
/
transpile
-
only
...
Waffle
是一个简单而又快速的编写和测试以太坊智能合约的js库,它比Truffle更加好用。_ts-
node
/regi...
赞
踩
article
Executors
-四种
创建
线程
的
手段_
executors
.
new
...
从构造方法可以看出,它
创建
了一个固定大小
的
线程
池,每次提交一个任务就
创建
一个
线程
,直到
线程
数达到
线程
池
的
最大值nThre...
赞
踩
article
【
愚公
系列】2023年
12
月
HarmonyOS
教学课程 040-
ArkUI
事件(
组合
手势
)...
应用程序的
手势
操作是指在移动设备上使用手指或
手势
进行与应用程序交互的方式。
手势
操作可以包括点击、滑动、双击、捏合等动作,...
赞
踩
article
微信
小
程序
支付
完整流程(前端)...
微信
小
程序
支付
完整流程_
微信
小
程序
支付
微信
小
程序
支付
微信
小
程序
中,常见付款给商家...
赞
踩
article
《
科研
伦理
与
学术
规范》
期末考试
答案2023_除
了
兜底条款,《办法》规定
了
对
学术
不端
行为
...
26单选(2 分)某
学术
杂志的评稿人同时是某高校相关专业的硕士生导师,在评判一个稿件的时候,他发现该作者研究的题目很有价...
赞
踩
article
鸿蒙
源码
分析
(
六十九
)...
service剩下函数
分析
我们知道该模块下经常出现的任务概念,这里我们也可以理解为消息。这里有消息的处理函数。任务或者消...
赞
踩
article
【
极速
下载
】
gradle
各
版本
快速
下载
地址大全
_
gradle
下载
...
Gradle官网
下载
的速度实在太慢,真的是没法忍受! 废话不多说,直接送上灰机,方便
下载
共享!
gradle
-6.5
快速
...
赞
踩
相关标签
怎么画龙的画奶奶帮我擦java
java
mysql
课程设计
B/S
uni-app
uView
vue
html
javascript
android
aosp
安卓
安卓架构
kubernetes
linux
服务器
jupyter
远程访问
windows
win10
harmonyos
华为
网络
运维