以下是我的代码:
if(v.getId() == R.id.button2)
{
Intent wpIntent = new Intent();
wpIntent.setType("image/*");
wpIntent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(wpIntent, "Select Picture"), SELECT_PICTURE);
}
}
public void onActivityResult(int resultCode, int requestCode, Intent data)
{
if(resultCode == RESULT_OK)
{
if(requestCode == SELECT_PICTURE)
{
Uri selectedImage = data.getData();
selectedImagePath = getPath(selectedImage);
Toast.makeText(this, ""+selectedImagePath, Toast.LENGTH_SHORT).show();
}
}
}
private String getPath(Uri selectedImage)
{
String[] proj = {MediaStore.Images.Media.DATA};
cursor = managedQuery(selectedImage, proj, null, null, null);
int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(columnIndex);
}
这张照片有什么问题?onActivityResult 中的 Toast 没有显示,这意味着这个东西不起作用。
我在这里做错了什么?
编辑:我添加了更多检查,结果发现 if(resultCode == RESULT_OK) 没有返回 true。为什么呢?
编辑 2这很奇怪。删除两个“if”语句使程序工作得很好。生成了正确的图像 Uri 并且整个事情工作得很好。我仍然不明白为什么“if”语句返回 false。