如何理解这句话,安卓的,query参数...

已注销
  • 870

第二个参数,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)。

我的问题是:“用null表示返回Provider的所有内容(列Column”,这里用的是反向的意思吗,null原意是没有,按理说,应该什么都不返回才是。这里的意思确实返回所有内容。这个人说得对吗?

回复
阅读 3.7k
4 个回答
✓ 已被采纳

对API存疑的时候,最快的方式是查看API文档:

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

projection: A list of which columns to return. Passing null will return all columns, which is inefficient.
selection: A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given URI.

http://developer.android.com/reference/android/content/ContentResolver.html

null 我的理解是 表示传入的参数是空的,表示查询的时候没有任何条件,就像select 语句一样,你写了一大推条件,就会按照条件查询了,如果写null 了就不会根据条件查询了

这个是查询条件啊,你也可以不写

翻译成中文就是投影。

宣传栏