【问题标题】:multiple image selection from gallery从图库中选择多个图像
【发布时间】:2014-10-31 04:55:30
【问题描述】:

我正在尝试从 android 库中选择图像。这是我的代码。它适用于单个图像。但是,如果选择多个图像,它会给我返回 null。知道怎么回事

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);
            }
        });

这是活动的代码

@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);

        }
    }
}

有什么想法吗?

谢谢

【问题讨论】:

  • 注意:EXTRA_ALLOW_MULTIPLE 选项仅在 Android API 18 及更高版本中可用。
  • 是的,我添加了

标签: android image select android-intent


【解决方案1】:

试试这样,

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("\\|");
    }
        }
    }

【讨论】:

  • 哪一个得到 NullPointerException?
  • String[] imagesPath = data.getStringExtra("data").split("\\|");
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多