以下代碼指定想要返回的列,它必須是字符串數(shù)組的形式。在下面的代碼中將這個數(shù)組傳遞給managedQuery方法。
String[] columns = { Media.DATA, Media._ID, Media.TITLE,
Media.DISPLAY_NAME };
cursor = managedQuery(Media.EXTERNAL_CONTENT_URI, columns, null, null,
null);
我們將需要知道從Cursor對象獲取數(shù)據(jù)的每個列的索引。在此示例中,從Media.DATA切換到MediaStore.Images.Media.DATA。這僅僅是為了說明它們是相同的。Media.DATA僅僅是可以使用的簡寫形式,因為有一條包含它的import語句: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);
運行查詢并獲得一個結(jié)果Cursor對象之后,調(diào)用該對象上的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指定一個新的onClickListener,其調(diào)用Cursor對象上的moveToNext方法。它將遍歷結(jié)果集,獲取并顯示返回的每幅圖像。
imageButton.setOnClickListener(
new OnClickListener() {
public void onClick(View v) {
if (cursor.moveToNext())