3

我正在使用 FragmentTabsPager 类

http://developer.android.com/resources/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabsPager.html

在我的一个应用程序中。FragmentTabsPager 包含 3 个片段。在我的布局中,左侧有一个列表,我想向 FragmentTabsPager 中的当前 Fragment 发送消息 (onListItemClick)。我很难在寻呼机中获取当前的 Fragment 实例。

对不起,我知道这很模糊,但如果有人有一个很棒的想法。

从 List 片段传递消息的机制很好,我可以将消息放入我的 FragmentTabsPager 类没有问题。它将消息传递到 TabHost 中的当前片段中,这给我带来了压力。

4

1 回答 1

3

我终于找到了答案!

要将消息传递给内部片段,您只需在其中调用一个公共函数。寻找正确的片段时,棘手的部分来了!

因此,要首先获取片段,请将其添加到 CustomFragmentPagerAdapter 中:

    public static class TabsAdapter extends FragmentPagerAdapter implements .. {
..

public Fragment findFragment(int position) {
            String name = "android:switcher:" + mViewPager.getId() + ":" + position;
            FragmentManager fm = ((FragmentActivity) mContext).getSupportFragmentManager();
            Fragment fragment = fm.findFragmentByTag(name);
            if (fragment == null) {
                fragment = getItem(position);
            }
            return fragment;
        }

然后像这样从主要活动中访问片段

CustomFragment fragment = mTabsAdapter.findFragment(1);
if(fragment != null)
   fragment.customFunction(args); //<-- your custom function

请注意,我实际上对所有片段类都使用了 ActionBarSherlock。但这仍然能够解决您的问题。

于 2012-10-26T16:51:52.133 回答