【发布时间】:2014-04-24 13:38:39
【问题描述】:
我正在尝试使用 onActivityResult 来启动 Android 图库,以便根据所选的 ImageButton 显示照片或视频。
问题是在尝试打开照片时,它会尝试启动视频播放器,但我不确定原因。
附言
可以使用视频 ImageButton 成功启动和播放视频。
private static final int SELECT_PHOTO = 1;
private static final int SELECT_VIDEO = 1;
ImageButton pb = (ImageButton) findViewById(R.id.photos);
pb.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(intent, SELECT_PHOTO);
}
});
ImageButton vb = (ImageButton) findViewById(R.id.video);
vb.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intentGallery = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intentGallery.setType("video/*");
startActivityForResult(intentGallery, 1);
}
});
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// if (resultCode == Activity.RESULT_OK) {
if (requestCode == SELECT_VIDEO) {
{
Uri selectedVideo = data.getData();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(selectedVideo, "video/*");
startActivity(intent);
}
} else if (requestCode == SELECT_PHOTO) {
Uri selectedImage = data.getData();
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(selectedImage, "image/*");
startActivity(intent);
}
【问题讨论】:
-
也许你弄乱了请求代码?
-
SELECT_PHOTO = ?当您为视频传递请求代码“1”时,希望它也不等于 1
-
Title 暗示 Google 搞砸了 onActivityResult 并且直到现在没有其他人看到这个错误?好笑。
-
这根本不是我的意思——我的实现没有按预期工作
标签: android android-intent android-gallery mediastore onactivityresult