1

我在一个活动中有 4 个选项卡。

他们每个人都是一个片段。每个 Fragment 都有一个 ListView。

因此,如果我更改 Fragment 中的 ListView,它必须更改所有其他 Fragment 中的 ListView,即 ..,选项卡。

我面临的问题是在创建接口实例时。

它需要它自己的 onClick() 方法。

如果我想要回调父活动,我可以通过覆盖onAttach来做到这一点。但是如何对 Fragment 进行回调呢?

来自开发者网站:

通常,您会希望一个 Fragment 与另一个 Fragment 进行通信,例如根据用户事件更改内容。所有 Fragment 到 Fragment 的通信都是通过关联的 Activity 完成的。两个 Fragment 永远不应该直接通信。

那么,对 Activity 进行回调,然后再对其他 Fragment 进行回调?

谢谢你

4

1 回答 1

1

这很简单,您只需要以下步骤:

1)从onClick您的第一个片段中的方法进行活动的函数调用:

((IYourActivityInterface) getActivty()).activityMethod();

2)在您的活动中按标签或ID查找片段并运行它的方法:

public void activityMethod(){
    Fragment tabFragment = getFragmentManager().findFragmentByTag("second_fragment");
    // or Fragment tabFragment = getFragmentManager().findFragmentById(R.id.frag);
    if (tabFragment!=null){
       ((IFragmentInterface) tabFragment).fragmentMethod();
    }
}

希望这是您正在寻找的。)

于 2012-12-18T09:53:50.080 回答