2014-10-31 117 views
1

我想从android图库中选择图像。这是我的代码。它适用于单幅图像。但是,如果选择多个图像,它给我回空。任何想法怎么回事错从图库中选择多个图像

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

     } 
    } 
} 

任何想法的代码?

感谢

+0

注:EXTRA_ALLOW_MULTIPLE选项仅在Android的API 18和更高版本中提供。 – Manmohan 2014-10-31 05:55:15

+0

是的,我补充说<使用-SDK 机器人:的minSdkVersion = “18” 机器人:targetSdkVersion = “21”/>? – Achayan 2014-10-31 06:00:58

回答

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

获得零指示字例外:( – Achayan 2014-10-31 05:54:03

+0

哪一个得到的NullPointerException – SeanChense 2014-10-31 06:55:31

+0

字符串[] imagesPath = data.getStringExtra( “数据”)分割( “\\ |”); – Achayan 2014-10-31 07:58:39