2
votes

I am trying to select images from android gallery. And here is my code. It works fine with single image. But when if select multiple image its giving me back null. Any idea whats going wrong

Button addNewCart = (Button) findViewById(R.id.imageSelect);
        addNewCart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                 Intent intent = new Intent( );
                    intent.setType("image/*");
                    intent.setAction(Intent.ACTION_GET_CONTENT);
                    intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
                    startActivityForResult(Intent.createChooser(intent,
                            "select multiple images"), 100);
            }
        });

And here is the code for activity

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode == Activity.RESULT_OK){
        String[] all_path = data.getStringArrayExtra("all_path");
        if(data != null)
        {   
            Uri selectedImageUri = data.getData();
            System.out.println(selectedImageUri);

        }
    }
}

Any ideas ?

Thanks

1
Note: the EXTRA_ALLOW_MULTIPLE option is only available in Android API 18 and higher. - Manmohan Badaya
Yeah I added that <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="21" /> - Achayan

1 Answers

1
votes

try like this,

private final int PICK_IMAGE_MULTIPLE =1;

 addNewCart.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                     Intent intent = new Intent( );
                        intent.setType("image/*");
                        intent.setAction(Intent.ACTION_GET_CONTENT);
                        intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
                        startActivityForResult(Intent.createChooser(intent,
                                "select multiple images"), PICK_IMAGE_MULTIPLE);
                }
            });

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(resultCode == Activity.RESULT_OK){
     if(requestCode == PICK_IMAGE_MULTIPLE){
            String[] imagesPath = data.getStringExtra("data").split("\\|");
    }
        }
    }