以下代碼指定想要返回的列,它必須是字符串?dāng)?shù)組的形式。在下面的代碼中將這個(gè)數(shù)組傳遞給managedQuery方法。
String[] columns = { Media.DATA, Media._ID, Media.TITLE,
Media.DISPLAY_NAME };
cursor = managedQuery(Media.EXTERNAL_CONTENT_URI, columns, null, null,
null);
我們將需要知道從Cursor對(duì)象獲取數(shù)據(jù)的每個(gè)列的索引。在此示例中,從Media.DATA切換到MediaStore.Images.Media.DATA。這僅僅是為了說(shuō)明它們是相同的。Media.DATA僅僅是可以使用的簡(jiǎn)寫(xiě)形式,因?yàn)橛幸粭l包含它的import語(yǔ)句:android.provider.MediaStore. Images.Media。
fileColumn = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
titleColumn = cursor.getColumnIndexOrThrow(MediaStore.Images.
Media.TITLE);
displayColumn= cursor.getColumnIndexOrThrow(MediaStore.Images.Media.
DISPLAY_NAME);
運(yùn)行查詢并獲得一個(gè)結(jié)果Cursor對(duì)象之后,調(diào)用該對(duì)象上的moveToFirst方法,以確保它包含結(jié)果。
if (cursor.moveToFirst()) {
//titleTextView.setText(cursor.getString(titleColumn));
titleTextView.setText(cursor.getString(displayColumn));
imageFilePath = cursor.getString(fileColumn);
bmp = getBitmap(imageFilePath);
// 顯示圖像
imageButton.setImageBitmap(bmp);
}
然后,為imageButton指定一個(gè)新的onClickListener,其調(diào)用Cursor對(duì)象上的moveToNext方法。它將遍歷結(jié)果集,獲取并顯示返回的每幅圖像。
imageButton.setOnClickListener(
new OnClickListener() {
public void onClick(View v) {
if (cursor.moveToNext())