1.cursor query 方法入参

public final Cursor query (Uri uri, String[] projection,String selection,String[] selectionArgs, String sortOrder)

第一个参数,uri,rui是什么呢?好吧,上面我们提到了Android提供内容的叫Provider,那么在Android中怎么区分各个Provider?有提供联系人的,有提供图片的等等。所以就需要有一个唯一的标识来标识这个Provider,Uri就是这个标识,android.provider.ContactsContract.Contacts.CONTENT_URI就是提供联系人的内容提供者,可惜这个内容提供者提供的数据很少。

第二个参数,projection,真不知道为什么要用这个单词,这个参数告诉Provider要返回的内容(列Column),比如Contacts Provider提供了联系人的ID和联系人的NAME等内容,如果我们只需要NAME,那么我们就应该使用:

Cursor cursor = contentResolver.query(android.provider.ContactsContract.Contacts.CONTENT_URI,

new String[]{android.provider.ContactsContract.Contacts.DISPLAY_NAME}, null, null, null);

当然,下面打印的你就只能显示NAME了,因为你返回的结果不包含ID。用null表示返回Provider的所有内容(列Column)。

第三个参数,selection,设置条件,相当于SQL语句中的where。null表示不进行筛选。如果我们只想返回名称为张三的数据,第三个参数应该设置为:

Cursor cursor = contentResolver.query(android.provider.ContactsContract.Contacts.CONTENT_URI,

new String[]{android.provider.ContactsContract.Contacts.DISPLAY_NAME},

android.provider.ContactsContract.Contacts.DISPLAY_NAME + "='张三'", null, null);

结果:

11-05 15:30:32.188: I/System.out(10271): 张三

第四个参数,selectionArgs,这个参数是要配合第三个参数使用的,如果你在第三个参数里面有?,那么你在selectionArgs写的数据就会替换掉?,

Cursor cursor = contentResolver.query(android.provider.ContactsContract.Contacts.CONTENT_URI,

new String[]{android.provider.ContactsContract.Contacts.DISPLAY_NAME},

android.provider.ContactsContract.Contacts.DISPLAY_NAME + "=?",

new String[]{"张三"}, null);

效果和上面一句的效果一样。

第五个参数,sortOrder,按照什么进行排序,相当于SQL语句中的Order by。如果想要结果按照ID的降序排列:

cursor 过滤 android,Android cursor query方法详解相关推荐

  1. android中oncreate方法,android开发之onCreate( )方法详解

    这里我们只关注一句话:This is where you should do all of your normal static set up.其中我们只关注normal static, normal ...

  2. android开发之onCreate( )方法详解

    android开发之onCreate( )方法详解 onCreate( )方法是android应用程序中最常见的方法之一,那么,我们在使用onCreate()方法的时候应该注意哪些问题呢? 先看看Go ...

  3. android notification的使用方法,详解Android中Notification的使用方法

    在消息通知的时候,我们经常用到两个控件Notification和Toast.特别是重要的和需要长时间显示的信息,用Notification最合适不过了.他可以在顶部显示一个图标以标示有了新的通知,当我 ...

  4. android java 指针异常处理,Android自定义抛出异常的方法详解

    前言 在android开发过程中,我们经常遇到异常的问题,崩溃抛出异常的时候,是非常令人烦闷的.但是异常有一个好处,使得app能在编译的时候给我们提供一些bug信息,有时可能比较模糊,有时可能很精准, ...

  5. sdk linux 离线安装方法,Android SDK离线安装方法详解(加速安装)

    AndroidSDK在国内下载一直很慢··有时候通宵都下不了一点点,最后只有选择离线安装,现在发出离线安装地址和方法,希望对大家有帮助 一,首先下载SDK的安装包,android-sdk_r10-wi ...

  6. android js接口调用方法,详解Android JS相互调用

    最近在研究Android.JS相互调用,之前没怎么接触过,只知道loadUrl()就可以加载一个网页了,研究过之后发现Android可以调JS,JS也可以调Android原生控件,很开心啊.下面小编就 ...

  7. android原生调用nextjs方法,详解使用Next.js构建服务端渲染应用

    next.js简介 最近在学React.js,React官方推荐使用next.js框架作为构建服务端渲染的网站,所以今天来研究一下next.js的使用. next.js作为一款轻量级的应用框架,主要用 ...

  8. android toolbar 自定义,Android自定义Toolbar使用方法详解

    本篇文章介绍: 如何使用Toolbar; 自定义Toolbar; 先来看一看效果,了解一下toolbar: 布局文件: android:id="@+id/toolbar" andr ...

  9. Android初级,实现网易云音乐歌曲列表界面效果,播放界面效果,ListView,ViewPager方法详解

    初学Android初级,第一篇博客文章,如有错误,还望批评指正! 本文主要内容以网易云音乐歌曲列表界面效果代码,播放音乐界面效果代码为主,并将ListView和ViewPager作为实现界面滑动功能的 ...

最新文章

  1. Ember——在构建Ember应用程序时,我们会使用到六个主要部件:应用程序(Application)、模型(Model)、视图(View)、模板(Template)、路由(...
  2. WMAP环境上传图片报错【找不到临时文件夹】解决方案
  3. ARM学习笔记7——乘法指令
  4. PowerTip of the Day from powershell.com上周汇总(六)
  5. mysql命令参数_MySQL命令行参数完整版
  6. 微软拿下美国国防部100亿美元云合同,亚马逊不干了...
  7. dplayer js控制 自动全屏_vue 中使用video.js 实现m3u8视频播放格式
  8. Spring @Service批注
  9. struts2之chain的使用
  10. python opencv 找到圆点标定板所有点后通过距离找四个角点2
  11. java mac air_敲代码的Macbook Air2020终于到啦
  12. 电商营销新思路:CPS分销推广模式
  13. 解密微信拼团电商:拼多多
  14. @生存技巧!程序员如何应对女朋友的“小脾气”(最后附女友靓照)
  15. command命令大全(转自http://blog.dhedu.gov.cn/u/72/archives/2009/14290.html)
  16. 神经网络参数个数计算,神经网络的参数设置
  17. python3.5中文手册_Python-3.5.X官方学习入门指南中文版
  18. STM32 PS2游戏摇杆 测试
  19. 【数据挖掘】关联规则挖掘
  20. 冬瓜哥对时间和空间的理解方式—时空参悟(下)

热门文章

  1. 准确率、召回率、F1、mAP、ROC、AUC
  2. 2020第十一届蓝桥杯软件类省赛第二场C/C++ 大学 B 组(题解)
  3. P2494 [SDOI2011]保密(网络流/最小割/01分数规划)
  4. ac 梦幻布丁 启发式合并
  5. [省选联考 2020 A/B 卷] 冰火战士(树状数组上二分)
  6. 【学习笔记】信息学竞赛中的概率与期望小结
  7. 牛客挑战赛48C-铬合金之声【Prufer序列】
  8. AT3957-[AGC023F]01 on Tree【贪心,堆】
  9. P4336-[SHOI2016]黑暗前的幻想乡【矩阵树定理,容斥】
  10. CF297E-Mystic Carvings【树状数组】