在PreferencesFragment中获取片段实例

时间:2016-09-01 11:29:25

标签: android android-fragments

通过我的首选项中的复选框,必须更新片段的视图。首选项位于PreferenceFragment:

public class SettingsFragment extends PreferenceFragment {...}

使用以下命令在活动中实例化此片段:

getFragmentManager().beginTransaction()
            .replace(android.R.id.content, new SettingsFragment())
            .commit();

我的应用程序有一些其他片段,它们扩展了android.support.v4.app.Fragment。在首选项中更改了复选框后,我必须更新此片段中的视图:

public class OfferingsFragment extends android.support.v4.app.Fragment {
      @Override
      public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
      {
          // This view needs to be updated
          View view = inflater.inflate(R.layout.offering_tiles, null);
          ...
      }
}

我的问题是:如何在PreferencesFragment中更新此视图?显然,我不能使用getFragmentManager来获取OfferingsFragment的实例,因为OfferingsFragment是来自支持库的片段。有没有办法从PreferenceFragment中访问OfferingsFragment?

1 个答案:

答案 0 :(得分:1)

您可以根据应用的设置方式选择一些选项。如果两个片段同时不活动,则Offerings片段只能在创建视图时从SharedPreferences读取值。

如果两个片段都处于活动状态并且需要刷新视图,则可以使用接口example here通过父活动创建回调。或者更简单的方法是使用OttoGreen Robot

等事件总线
相关问题