私は、MediaStore Classを使用して、ストレージ内のすべての画像フォルダを取得しました。 しかし、問題は、同じフォルダがその中にある画像の数だけ何度も表示されていることです。MediaStoreクラス(ANDROID)を使用して画像を含むすべてのフォルダを取得するにはどうすればよいですか?
public void getImageDirProvider(){
Uri uri= MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
String projection[]={MediaStore.Images.Media.BUCKET_DISPLAY_NAME,MediaStore.Images.Media.BUCKET_ID,MediaStore.Images.Media._ID};
imageCursor=getActivity().getContentResolver().query(uri,projection,null,null,null);
if (imageCursor!=null){
while(imageCursor.moveToNext()){
bucketName.add(imageCursor.getString(0));
bucketId.add(imageCursor.getString(1));
}
}
}
ここで、bucketNameとbucketIdはString型のArrayListsです。
@Override
public int getCount() {
return bucketName.size();
}
@Override
public Object getItem(int position) {
return bucketName.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
class Holder {
ImageView iview;
TextView tview;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder hold = new Holder();
convertView = layoutInflater.inflate(R.layout.my_list_adapter, parent, false);
hold.tview = (TextView) convertView.findViewById(R.id.text_view_adapter);
hold.iview = (ImageView) convertView.findViewById(R.id.image_view);
hold.tview.setText(getItem(position).toString());
hold.iview.setImageResource(android.R.drawable.ic_btn_speak_now);
return convertView;
}
}
上記は、BaseAdapterクラスを拡張したmyCustomAdapterクラスです。
を試し、その後重複した値を受け取る場合のようにのみ利用可能バケットのクエリおよびクエリから
String projection[]={MediaStore.Images.Media.BUCKET_DISPLAY_NAME,MediaStore.Images.Media.BUCKET_ID};
を画像を除外するようにしてください? @aribeiro。 – aribeiro
はい、私はcardViewを含むフラグメントのrecyclerViewを入れました。と私はJavaでのファイル処理を使用してファイルの最初のセットを表示するcardViewにonClickListener()を入れている。その後、私は入れ子になっているフォルダの数を知っていないので、どのくらい多くのフラグメントを使用するか考えています。どのくらいの数のフォルダにファイルを取得しようとしたら... – Prabh
アイデア... !!! – Prabh