Хорошо, мне удалось решить мою проблему, слава Богу.Проблема заключается в том, как я обрабатывал случаи requestCode в onActivityResult () .У меня есть ImageView и VideoView в той же деятельности.И мой ImageView, и VideoView позволяют пользователю загружать файлы с камеры или из галереи.
Это код для обработки ImageView и VideoView в методе onCreate () :
imageutils = new ImageUtils(this);
imageView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
imageutils.imagepicker(1);
}
});
videoUtils = new VideoUtils(this);
videoBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
videoUtils.videoPicker(1);
}
});
В моем классе ImageUtils у меня есть camera_call () и gallery_call () :
public void camera_call() {
ContentValues values = new ContentValues();
imageUri = current_activity.getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent intent1 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent1.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
current_activity.startActivityForResult(intent1, 0);
}
public void gallery_call() {
Intent intent2 = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent2.setType("image/*");
current_activity.startActivityForResult(intent2, 1);
}
И в моем классе VideoUtils у меня также есть camera_call () и gallery_call () :
public void camera_call() {
Intent videoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
videoIntent.putExtra(MediaStore.EXTRA_OUTPUT, videoUri);
current_activity.startActivityForResult(videoIntent, 2);
}
public void gallery_call() {
Intent intent2 = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
intent2.setType("video/*");
current_activity.startActivityForResult(intent2, 3);
}
Как известно, параметры для startActivityForResult таковы: startActivityForResult (intent, requestCode).Вот так я обрабатываю разные requestCode для камеры и галереи в ImageView и VideoView в одном действии, используя onActivityResult () :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK) {
if(requestCode == 0 || requestCode == 1) {
imageutils.onActivityResult(requestCode, resultCode, data);
}
if(requestCode == 2 || requestCode == 3) {
videoView.setVisibility(View.VISIBLE);
videoUri = data.getData();
videoView.setVideoURI(videoUri);
videoView.setFocusable(true);
videoView.seekTo(1);
MediaController mc = new MediaController(this);
videoView.setMediaController(mc);
Log.i("True", "Executed");
}
}
}
Вот и все!Теперь я могу загружать и отображать изображение в упражнении, а также загружать и воспроизводить видео в том же упражнении.