从活动android选项卡调用片段方法

时间:2014-09-02 17:27:45

标签: android android-activity android-fragments

我有一个Android应用程序,有几个选项卡。要创建选项卡,我使用了以下教程:

http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/

因此,标签是使用由TabsPagerAdapter处理的片段实现的,这些片段扩展了FragmentPagerAdapter

但是我在主要活动的一个片段中调用方法时遇到了麻烦。

我想在主要活动收到消息时调用此方法。更具体地说,我需要在收到此消息时更新片段的UI。但我不确定如何正确识别片段,因为它没有在xml中声明,因此没有标签/ id。

我希望有人能够帮助我找到最佳方法。

1 个答案:

答案 0 :(得分:1)

首先使用onCreate的{​​{1}}方法创建所有片段并将其添加到Activity

mMyFrag

并将您的适配器更改为:

ArrayList<MyFragment> mMyFrag = new ArrayList<MyFragment>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    for(int i=0; i<4; i++) {
        MyFragment fragment = MyFragment.newInstance(arg);
        mMyFrag.add(fragment);
   }
}

所以当你想调用一个方法从活动到片段时说1做这个:

private class MyPagerAdapter extends FragmentPagerAdapter {

private ArrayList<MyFragment> mMyFragList;

public MyPagerAdapter(FragmentManager fm, ArrayList<MyFragment> list) {
    super(fm);
    mMyFragList = list;
}

@Override
public int getCount() {
   return mMyFragList.size();
}

@Override
public int getItemPosition(Object object) {
    return POSITION_NONE;
}

@Override
public MyFragment getItem(int position) {
   return mMyFragList.get(position);
}

}