您如何开始您的活动?从哪里开始?
如果您通过 MainActivity 传递结果,您可以尝试在 DialogFragment 中创建一个新函数,如下所示:
public void onMyActivityResult(Context main, int resultCode... an so on){
main.getContentResolver.......
}
编辑:
我是这样做的:
在onCreate中获取Activity:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivity = (MainActivity) this.getActivity();
}
then:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_GALLERY && resultCode == Activity.RESULT_OK) {
...
Uri selectedImage = data.getData();
String path = getRealPathFromURI(selectedImage);
...
reloadImages();
}
super.onActivityResult(requestCode, resultCode, data);
}
and:
private String getRealPathFromURI(Uri contentURI) {
Cursor cursor = mActivity.getContentResolver().query(contentURI, null, null, null, null);
if (cursor == null) { // Source is Dropbox or other similar local file
// path
return contentURI.getPath();
} else {
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
String path = cursor.getString(idx);
cursor.close();
return path;
}
}