-1

我的 ThAdapter 类中有一个错误。我想在 imageView 中显示图像并在 textView 中显示图像名称,但它显示错误。我知道错误在 getView() 中,但我不知道如何更改它。有人可以帮我吗??

public class Th extends BaseAdapter {

// Context required for performing queries
private final Context mContext;

// Cursor for thumbnails
private final Cursor cursor;
private final int imgId;
private final int imgData;
private final int count;

public Th(Context c) {
    this.mContext = c;

    // Get list of all images, sorted by last taken first
    final String[] projection = {
            MediaStore.Images.Media._ID,
            MediaStore.Images.Media.DATA
    };
    cursor = mContext.getContentResolver().query(
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
            projection,
            null,
            null,
            MediaStore.Images.Media.DATE_TAKEN + " DESC"
    );

    // Set constants (column indices and image count)
    imgId = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);
    imgData = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    count = cursor.getCount();
    Log.d("ThumbnailAdapter", count + " images found");
}

@Override
public int getCount() {
    return count;
}

@Override
public Object getItem(int position) {
    return position;
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
     TextView textView;
    if (convertView == null) {  // if it's not recycled, initialize some attributes
        imageView = new ImageView(mContext);
        textView = new  TextView(mContext);

    } else {
        imageView = (ImageView) convertView;
        textView = (TextView) convertView;
    }

    // Move cursor to image position, fetch id, and generate/view thumbnail
    cursor.moveToPosition(position);
    final Bitmap thumbnail = MediaStore.Images.Thumbnails.getThumbnail(
            mContext.getContentResolver(),
            cursor.getInt(imgId), 
            MediaStore.Images.Thumbnails.MICRO_KIND,
            null
    );

    imageView.setImageBitmap(thumbnail);
     textView.setText(cursor.getString(imgData));


    return imageView;
}

/**
 * Get the image path from the given position
 * @param position
 * @return
 */
public String getImagePath(int position) {
    cursor.moveToPosition(position);
    return cursor.getString(imgData);
}
4

1 回答 1

0

您的 getView 只返回一个图像视图。所以没有使用textview。您想要返回包含两个视图的布局(线性或相对)

于 2014-06-08T21:08:32.573 回答