通过我的首选项中的复选框,必须更新片段的视图。首选项位于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?
答案 0 :(得分:1)
您可以根据应用的设置方式选择一些选项。如果两个片段同时不活动,则Offerings片段只能在创建视图时从SharedPreferences读取值。
如果两个片段都处于活动状态并且需要刷新视图,则可以使用接口example here通过父活动创建回调。或者更简单的方法是使用Otto或Green Robot
等事件总线