cursor 过滤 android,Android cursor query方法详解
1.cursor query 方法入?yún)?/p>
public final Cursor query (Uri uri, String[] projection,String selection,String[] selectionArgs, String sortOrder)
第一個(gè)參數(shù),uri,rui是什么呢?好吧,上面我們提到了Android提供內(nèi)容的叫Provider,那么在Android中怎么區(qū)分各個(gè)Provider?有提供聯(lián)系人的,有提供圖片的等等。所以就需要有一個(gè)唯一的標(biāo)識(shí)來標(biāo)識(shí)這個(gè)Provider,Uri就是這個(gè)標(biāo)識(shí),android.provider.ContactsContract.Contacts.CONTENT_URI就是提供聯(lián)系人的內(nèi)容提供者,可惜這個(gè)內(nèi)容提供者提供的數(shù)據(jù)很少。
第二個(gè)參數(shù),projection,真不知道為什么要用這個(gè)單詞,這個(gè)參數(shù)告訴Provider要返回的內(nèi)容(列Column),比如Contacts Provider提供了聯(lián)系人的ID和聯(lián)系人的NAME等內(nèi)容,如果我們只需要NAME,那么我們就應(yīng)該使用:
Cursor cursor = contentResolver.query(android.provider.ContactsContract.Contacts.CONTENT_URI,
new String[]{android.provider.ContactsContract.Contacts.DISPLAY_NAME}, null, null, null);
當(dāng)然,下面打印的你就只能顯示NAME了,因?yàn)槟惴祷氐慕Y(jié)果不包含ID。用null表示返回Provider的所有內(nèi)容(列Column)。
第三個(gè)參數(shù),selection,設(shè)置條件,相當(dāng)于SQL語句中的where。null表示不進(jìn)行篩選。如果我們只想返回名稱為張三的數(shù)據(jù),第三個(gè)參數(shù)應(yīng)該設(shè)置為:
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);
結(jié)果:
11-05 15:30:32.188: I/System.out(10271): 張三
第四個(gè)參數(shù),selectionArgs,這個(gè)參數(shù)是要配合第三個(gè)參數(shù)使用的,如果你在第三個(gè)參數(shù)里面有?,那么你在selectionArgs寫的數(shù)據(jù)就會(huì)替換掉?,
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);
效果和上面一句的效果一樣。
第五個(gè)參數(shù),sortOrder,按照什么進(jìn)行排序,相當(dāng)于SQL語句中的Order by。如果想要結(jié)果按照ID的降序排列:
總結(jié)
以上是生活随笔為你收集整理的cursor 过滤 android,Android cursor query方法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑显示器有胶点(显示器有胶带粘过的痕迹
- 下一篇: android手机打电话src,【SPI