当使用选项卡活动时,卡住获取相机图片

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent,CAMERA_PIC_REQUEST); Intent takePictureIntent = new Intent(getParent(),TakePicture.class); takePictureIntent.putExtra("image",thumbnail); OpenBeeActivityGroup opentActivity = (OpenBeeActivityGroup)getParent(); opentActivity.startChildActivity("TakePicture Activity",takePictureIntent); 

至于从我的理解你的问题是,这发生在使用ActivityGroup 。 既然你是在一个Activity (即TakePicture.class )里面启动ActivityActivity ,并且Android将只允许单层嵌套的子Activity (ies)(意思是子Activity不能嵌套另一个子Activity )。 你可能正在处理你的子Activity的结果(即TakePicture.class )。

所以你的问题的解决办法是处理你的父ActivityOpenBeeActivityGroup )的onActivityResult()结果,然后将结果发送到活动的Activity 。 你会用这样的东西。 在你的孩子里面Activity从父类Activity开始你的startActivityForResult()

 getParent().startActivityForResult(cameraIntent,Global.CAMERA_PIC_REQUEST); 

ActivityGroupOpenBeeActivityGroup )的onActivityResult()中:

 protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK) { switch(requestCode) { case Global.CAMERA_PIC_REQUEST: // global variable to indicate camera result Activity activity = getLocalActivityManager().getCurrentActivity(); activity.onActivityResult(requestCode, resultCode, data); break; } } } 

沿着这些路线,我试图用你的代码启动摄像头,如果你真的拥有它,那么你不能再次调用startActivityForResult。 你需要做的是扩展ActivityGroup来处理开始一个子活动的结果。 我必须弄清楚 – HTH。