【发布时间】:2014-12-26 03:15:26
【问题描述】:
我有一个调用自定义拍照活动的片段。
意图额外传递给活动调用不起作用。如果我打印 logcat,我可以在 Fragment 中看到意图。但是 Activity 没有收到它。
片段:
Intent intent = new Intent();
intent.setClass(getActivity(), CameraActivity.class);
Uri fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
intent.putExtra("outFile", fileUri);
Log.e(TAG, "" +
"------------------------------------------------------ " +
"fileUri intent => " + fileUri);
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
活动:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
Intent intent = getIntent();
outFile = intent.getStringExtra("outFile");
String test = getIntent().getExtras().getString("outFile");
Log.i("CameraActivity", "" +
"- " +
"test intent => " + test);
Log.e("CameraActivity", "" +
"- " +
"intent.getStringExtra(outFile) => " + intent.getStringExtra("outFile"));
Log.e("CameraActivity", "" +
"- " +
"outFile intent => " + outFile);
LogCat:
来自片段:
12-26 11:12:21.399: E/PostProductFragment(3563): - fileUri intent => file:///mnt/sdcard/Pictures/MyCameraApp/IMG_20141226_111221.jpg
来自活动日志:
12-26 11:12:21.449: I/CameraActivity(3563): - test intent => null
12-26 11:12:21.449: E/CameraActivity(3563): - intent.getStringExtra(outFile) => null
12-26 11:12:21.449: E/CameraActivity(3563): - outFile intent => null
【问题讨论】:
-
您是否注意到您正在将一个 Uri 对象传递给意图?尝试使用 putExtra 将 fileUri.getPath() 置于意图中。
-
你必须改成:intent.putExtra("outFile", fileUri.toString());
标签: java android android-intent android-activity android-fragments