其他分享
首页 > 其他分享> > android-在FragmentTabPager中的TabHost中向Fragment发送消息

android-在FragmentTabPager中的TabHost中向Fragment发送消息

作者:互联网

我正在使用来自的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内的当前Fragment中,这使我感到压力.

解决方法:

我终于找到答案了!

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

因此,首先要获取片段,请将其添加到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.但这仍然可以解决您的问题.

标签:android-fragments,actionbarsherlock,android-3-0-honeycomb,android
来源: https://codeday.me/bug/20191208/2088084.html