【问题标题】:android: how to get all folders with namesandroid:如何获取所有具有名称的文件夹
【发布时间】:2014-07-30 07:28:55
【问题描述】:

您好,有人可以帮我写代码吗?我有一个类应该显示我的 SD 卡+文件夹名称上的文件夹,但所有文件夹都有相同的名称,但每个文件夹应该有不同的名称。我该如何实现它??

public class ThumbnailAdapter extends BaseAdapter {

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

// Cursor for thumbnails
private final Cursor cursor;

private final int count;

String bucket;
String id;


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

    // Get list of all images, sorted by last taken first
    final String[] projection = {
            MediaStore.Images.Media.BUCKET_ID,
            MediaStore.Images.Media.BUCKET_DISPLAY_NAME
    };
    String BUCKET_GROUP_BY =
            "1) GROUP BY 1,(2";
    String BUCKET_ORDER_BY = "MAX(datetaken) DESC";

    cursor = mContext.getContentResolver().query(
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
            projection,
            BUCKET_GROUP_BY,
            null,
            BUCKET_ORDER_BY
    );
    if (cursor.moveToFirst()) {

        int bucketColumn = cursor.getColumnIndex(
                MediaStore.Images.Media.BUCKET_DISPLAY_NAME);

        int idColumn = cursor.getColumnIndex(
                MediaStore.Images.Media.BUCKET_ID);


        do {
            // Get the field values
            bucket = cursor.getString(bucketColumn);
            id = cursor.getString(idColumn);


        } while (cursor.moveToNext());
    }

    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) {

      LinearLayout ll = new LinearLayout(mContext);

      ImageView imageView = new ImageView(mContext);
      TextView mytext = new TextView(mContext);
     mytext.setText(bucket);
      imageView.setImageResource(R.drawable.your_folder_icon);
      ll.addView(imageView);
      ll.addView(mytext);



    return ll;
}

【问题讨论】:

    标签: android image gridview directory mediastore


    【解决方案1】:

    您可能没有设置您的 TextView mytext 来更改它显示的文本 - 请尝试以下行:

    mytext.setText(projection[position]);

    我不太确定您是如何索引您的 projection 字符串数组,但只需提供正确的索引(使用 getView() 方法中的 position 变量,您应该能够更改 TextView 名称正确。

    【讨论】:

    • 我应该放在什么位置
    • 位置在getView方法中自动生成。您应该能够在存储缩略图和名称值的数组上调用 position
    • 我不能;无法制作 mytext.setText(projection[position]);它向我显示错误
    • 错误投影,你能说它应该如何。我需要添加什么
    • 您将名称存储在哪个数组中?我相信它是投影,但它是二维数组吗?
    猜你喜欢
    • 2013-04-19
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 2013-04-29
    • 2023-02-03
    • 1970-01-01
    相关资源
    最近更新 更多