【问题标题】:How to get a Fragment instance from FragmentActivity which contains a ViewPager for fragment transactions?如何从 FragmentActivity 获取 Fragment 实例,其中包含用于片段事务的 ViewPager?
【发布时间】:2014-12-27 23:17:51
【问题描述】:

我有一个带有以下 xml 的 FragmentActivity

<?xml version="1.0" encoding="utf-8"?>
  <android.support.v4.view.ViewPager
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/pager"
  android:layout_width="match_parent"
  android:layout_height="match_parent" />

和view pager类如下:

public class MyPagerAdapter extends FragmentStatePagerAdapter {

  public MyPagerAdapter(FragmentManager fm) {
      super(fm);
  }

  @Override
  public Fragment getItem(int i) {
    switch (i) {
        case 0:
            // profile fragment activity
            Fragment f = new ProfileFragment();
            return new ProfileFragment();
        case 1:
            // radar fragment activity
            return new RadarFragment();
        case 2:
            // matches fragment activity
            return new MatchesFragment();
    }

    return null;
  }

  @Override
  public int getCount() {
    return 3;
  }
}

我还有一个BroadcastReceiver 类,它有一个我的自定义FragmentActivity 的实例变量。通过这个实例变量,我想获得上面的任何片段。我知道有 FragmentManager.findFragmentById()findFragmentByTag() 方法,但在这种情况下我似乎找不到使用它的方法。

【问题讨论】:

    标签: android android-fragments android-viewpager fragment android-fragmentactivity


    【解决方案1】:

    由于您只有 3 个页面(3 个片段),因此我建议您使用 FragmentPagerAdapter 而不是 FragmentStatePagerAdapter。然后,您可以使用findFragmentByTag 来查找您的片段 - 在This SO question. 中了解更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-31
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 2017-04-07
      相关资源
      最近更新 更多