Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 拍照后返回片段_Android_Android Fragments_Android Camera - Fatal编程技术网

Android 拍照后返回片段

Android 拍照后返回片段,android,android-fragments,android-camera,Android,Android Fragments,Android Camera,我有3个片段A,B和C A-->B-->C 我从fragmentC打开相机来拍照,当我拍照时,我单击OK来存储它,这样它会返回到开始的fragmenta,就像应用程序关闭一样,那么如何保持在我打开相机的fragmentC中呢 Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); String root = Utils.getFirstWritableDirectory()

我有3个片段A,B和C

A-->B-->C

我从fragmentC打开相机来拍照,当我拍照时,我单击OK来存储它,这样它会返回到开始的fragmenta,就像应用程序关闭一样,那么如何保持在我打开相机的fragmentC中呢

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
                        String root = Utils.getFirstWritableDirectory().toString();
                        File myDir = new File(root+"/.XXXX_IMAGES");

                        if(!myDir.exists())
                            myDir.mkdirs();
                        File file = new File(myDir+File.separator + time+".jpg");
                        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
                        startActivityForResult(intent, XX);

使用
Intent
调用相机会创建并将相机的
活动
带到您的前面,从而触发
onPause()
方法<如果正在终止
活动以回收内存,则也可以调用code>onStop()

根据您在片段A、B和C之间更改视图的方式,它们的状态可能会在
onStop()
时丢失,从而导致应用程序重置为片段A,即默认状态

要解决这个问题,您必须通过分别覆盖
onRestoreInstanceState()
onSaveInstanceState()
(或者,根据您希望片段的持久性,
onCreate()
/
onStop()
)来实现状态保存和恢复,如果它确实是最后一个,则恢复C片段


您的
活动
onActivityResult()
将在
onRestoreInstanceState()之后调用

如何在片段C中获取pic?按意图或自定义相机视图?按意图,您可以查看我的代码。切换时是否添加或替换了片段?我使用onSaveInstanceState将状态从片段传递到活动,然后在活动中调用RestoreInstanceState,它现在可以工作了!