2016-12-02 6 views
0

Я хочу использовать тот же onActivityResult для изображений, видео и аудио.Android, используйте тот же onActivityResult для изображений, видео и аудио

Проблема.
Когда я выбираю аудио, он сохраняет путь для аудио как в видео, так и в изображениях. У меня проблемы с разделением изображений, видео и аудио.

Мой код.

private static final int SELECT_PICTURE = 1; 
private static final int SELECT_AUDIO = 1; 
private static final int REQUEST_TAKE_GALLERY_VIDEO = 1; 

Аудио, изображения, видео

addVideo.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Intent intent = new Intent(); 
      intent.setType("video/*"); 
      intent.setAction(Intent.ACTION_GET_CONTENT); 
      startActivityForResult(Intent.createChooser(intent,"Select Video"),REQUEST_TAKE_GALLERY_VIDEO); 
     } 
    }); 

    addAudio.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Intent intent = new Intent(); 
      intent.setType("audio/*"); 
      intent.setAction(Intent.ACTION_GET_CONTENT); 
      startActivityForResult(Intent.createChooser(intent,"Select Audio"),SELECT_AUDIO); 
     } 
    }); 

    addImage.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Intent intent = new Intent(); 
      intent.setType("image/*"); 
      intent.setAction(Intent.ACTION_GET_CONTENT); 
      startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE); 
     } 
    }); 

onActivityResult

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK) { 
     if (requestCode == REQUEST_TAKE_GALLERY_VIDEO) { 
      Uri selectedVideoUri = data.getData(); 
      selectedVideoPath = getPath(selectedVideoUri); 
     } 
     if (requestCode == SELECT_AUDIO) { 
      Uri selectedAudioUri = data.getData(); 
      selectedAudioPath = getPath(selectedAudioUri); 
     } 
     if (requestCode == SELECT_PICTURE) { 
      Uri selectedImageUri = data.getData(); 
      selectedImagePath = getPath(selectedImageUri); 
      File f = new File(selectedImagePath); 
      if(f.exists()){ 
       //w, h 
       Bitmap myBitmap = resizeImage.getCompressedBitmap(200, 200, f); 
       img.setImageBitmap(myBitmap); 
      } 
     } 
    } 
} 

ответ

5

Вы используете один и тот же идентификатор для вся ваша третья просьба es

private static final int SELECT_PICTURE = 1; 
private static final int SELECT_AUDIO = 1; 
private static final int REQUEST_TAKE_GALLERY_VIDEO = 1; 

OnActivityResult не может сказать разницу. Вы должны дать им уникальный идентификатор.

private static final int SELECT_PICTURE = 1; 
private static final int SELECT_AUDIO = 2; 
private static final int REQUEST_TAKE_GALLERY_VIDEO = 3; 
+0

Спасибо, что сработало –

1

Charm Geldjust обновить статическое значение по этим ..

private static final int SELECT_PICTURE = 1; 
private static final int SELECT_AUDIO = 2; 
private static final int REQUEST_TAKE_GALLERY_VIDEO = 3; 

 Смежные вопросы

  • Нет связанных вопросов^_^