【发布时间】:2016-03-03 03:51:32
【问题描述】:
我会尝试解释场景。
看这张图片1:
我有一个名为 HOME 的片段,带有一个工具栏。
在那个片段中,我有一个带有 2 个片段的 ViewPager:
片段 A 和片段 B
当片段 A 处于活动状态时,工具栏有一个调用另一个活动的操作按钮。
在那个“另一个活动”中,我有一个带有 2 个片段的 ViewPager: 片段 C 和片段 D。
我需要的是,当我点击片段 C 中的按钮时,“另一个活动”会关闭并在片段 A 中执行回调。
我尝试使用 startActivityforresult 但没有成功。
尝试在片段 C 中使用由片段 A 实现的公共接口,但我认为这并不像预期的那样工作。
谁能给我小费?
对不起,我的英语不是我的母语。
一些代码解释:
内部片段 A
当工具栏中的按钮被点击时,他会调用“另一个活动”
startActivityForResult(IAddPedido, RESULT_ADD);
“另一个活动”创建 viewpager 并设置 2 个片段:
fragManager = getSupportFragmentManager();
adapterPedidosAdd = new AdapterPedidosAdd(fragManager);
// Seto adaptador passando o Id
viewPagerPedAdd.setAdapter(adapterPedidosAdd);
tLayoutPedAdd.post(new Runnable() {
@Override
public void run() {
tLayoutPedAdd.setupWithViewPager(viewPagerPedAdd);
}
});
在片段 C 中,当我点击“按钮”时,他会调用设置结果并调用“finish()”。
// Get the "another activity" and set the result
getActivity().setResult(1);
// Close the "another activity"
getActivity().finish();
然后,在片段 A 中,我有“onActivityResult”:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
}
但是 Fragment A 中的“onActivityResult”永远不会被调用。
也许我必须在“Home”中创建“onActivityResult”,然后获取片段 A 的实例来调用他内部的方法?
PS.:“Home”是一个片段,因为我有一个 NavigationDrawer。
【问题讨论】:
-
签出eventbus。
-
您应该可以使用 startactivityforresult 来执行此操作。它怎么不工作?
-
是的,使用一个库或者....你可以写一个简单的方法这里是一个例子stackoverflow.com/questions/13700798/…
-
查看answer。
标签: android android-fragments callback