首页 > 解决方案 > Get Images from External Storage Image Folder in RecyclerView?

问题描述

I have a folder in my External Storage my folder name is (Whatsapp Sticker). I want to Access all images from this folder when I do.. one image return to length of folder size..How do I get All Images?

This is my Activity where I get All images:

public class CupyActivity extends AppCompatActivity {
    RecyclerView recyclerView;
    recyclerAdapterCupy recyclerAdapterCupy;
    GridLayoutManager layoutManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cupy);
        recyclerView = findViewById(R.id.recycler1);
        recyclerAdapterCupy = new recyclerAdapterCupy(CupyActivity.this, getData());
        recyclerView.setAdapter(recyclerAdapterCupy);
        layoutManager = new GridLayoutManager(this, 2);
        recyclerView.setLayoutManager(layoutManager);


    }

    private ArrayList<GetCupy> getData()   // this Method return one image again and Again... in my folder 26 images but 1 image return 26times
        {
            ArrayList<GetCupy> arrayList = new ArrayList<>();
           File downloadfile = Environment.getExternalStorageDirectory();
           File file = new File(downloadfile + "/Whatsapp Sticker");
            GetCupy getCupy = new GetCupy();
            if (file.exists())
            {
                File[] files = file.listFiles();

                for (int i = 0; i<files.length; i++)
                {
                    File file1 = files[i];

                    getCupy.setName(file1.getName());
                    getCupy.setUri(Uri.fromFile(file1));
                    Log.d("abcdf", "getData: "+Uri.fromFile(file1));

                    arrayList.add(getCupy);
                    Log.d("abc", "getData: "+arrayList);
                }
            }
            return arrayList;
        }
}

标签: javaandroid-studio

解决方案


在 for 循环中创建一个 Cupy 数据对象。

 private ArrayList<GetCupy> getData()  
        {
            ArrayList<GetCupy> arrayList = new ArrayList<>();

           File file = new File(Environment.getExternalStorageDirectory() + "/Whatsapp Sticker");

            if (file.exists())
            {
                File[] files = file.listFiles();

                for (int i = 0; i<files.length; i++)
                {
                    getCupy = new GetCupy();
                    File file1 = files[i];

                    getCupy.setName(file1.getName());
                    getCupy.setUri(Uri.fromFile(file1));
                    Log.d("abcdf", "getData: "+Uri.fromFile(file1));

                    arrayList.add(getCupy);
                    Log.d("abc", "getData: "+arrayList);
                }
            }
            return arrayList;

        }

推荐阅读