【发布时间】:2015-04-17 14:16:34
【问题描述】:
通常调用相机我们使用如下代码:
startActivityForResult(intent, REQUEST_CAMERA);
启动相机服务。并使用 onActivityResult 获取返回的照片 uri。它在活动中运作良好。但是对于fragment,回调只在Main Activity中触发,而不是fragment,如何设置回调?
请注意,片段在 tabhost 内部并且在事务处理之后,所以我不能简单地 tabhostmanager().findviewbytag()
非常感谢
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d("test1", "result2");
super.onActivityResult(requestCode, resultCode, data);
}
更新:
The tabost
tabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
tabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
tabHost.addTab(tabHost.newTabSpec("home").setIndicator("Home"),HomeFragment.class, null);
我使用片段事务,所以 findviewbyid/ 标签返回其他实例,谢谢
【问题讨论】:
-
您将不得不处理主机活动中的回调。
-
但我所有的变量都在片段内,例如我放置返回照片的图像视图。如何与之互动?谢谢
-
最好有办法从宿主活动中回调你的片段。因此,在您的片段中,您需要调用 onActivityResult,然后在该调用中调用 super.onActivityResult(...)。这将使主机活动侦听回调。在您的主机活动中,将从调用中传递的数据传递回您的片段并进行处理。
标签: android android-fragments android-camera android-camera-intent