android - 从 Activity android选项卡调用 fragment 方法

标签 android android-activity android-fragments

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

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

因此,选项卡是使用由 TabsPagerAdapter 处理的 fragment 实现的,它扩展了 FragmentPagerAdapter

但是,我在调用主要 Activity 的其中一个 fragment 中的方法时遇到问题。

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

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

最佳答案

首先在 ActivityonCreate 方法中创建所有 fragment ,并将它们添加到 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);
   }
}

并将您的适配器更改为:

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);
}

}

所以当你想调用一个方法从 Activity 到 fragment 说 1 这样做:

mMyFrag.get(1).yourMethod();

关于android - 从 Activity android选项卡调用 fragment 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25629042/

相关文章:

android - 我应该放弃 onStop() 或 onDestroy() 中的 View 引用等吗?

android - MapFragment 在 getMapAsync(this) 方法中导致 NullPointerException

android - onOptionsItemSelected 未注册 fragment 中的项目

java - 为什么某些 xhdpi 手机不显示位于/res/drawable 中的图像?

android - 从移动设备访问 Rails 应用程序

android - 在 android map v2 中创建自定义样式 map 时无法解析 setMapStyle()

android - 锁定水平 View

android - onActivityResult 调用被中间 Activity 延迟

Android:如何确保在任何情况下 Fragment 中的 getActivity 不应返回 null

android - 上下文操作菜单不会在视觉上超过 fragment 中的操作栏位置