在Android中管理片段内的内容

在Android中管理片段内的内容,android,android-fragments,android-tabs,Android,Android Fragments,Android Tabs,我有一个应用程序,它由3个片段组成,作为基于初始活动的选项卡 中间的选项卡有一个保存日期的按钮。这只是一个日期选择器,用于将所选日期添加到本地首选项 设置好这个日期后,当我滑到左边的片段选项卡时,我想看到那个日期 我需要在碎片生命周期或其他任何方面改变/考虑,这样当我在中间片段选项卡中更新这个值时,我可以立即得到、使用和显示最左边的片断选项卡上的数据。 目前,它只在我关闭应用程序时起作用。重新创建片段似乎没有得到更新的日期值。我已经尝试在onCreate、onStart、onResume、ins

我有一个应用程序,它由3个片段组成,作为基于初始活动的选项卡

中间的选项卡有一个保存日期的按钮。这只是一个日期选择器,用于将所选日期添加到本地首选项

设置好这个日期后,当我滑到左边的片段选项卡时,我想看到那个日期

我需要在碎片生命周期或其他任何方面改变/考虑,这样当我在中间片段选项卡中更新这个值时,我可以立即得到、使用和显示最左边的片断选项卡上的数据。 目前,它只在我关闭应用程序时起作用。重新创建片段似乎没有得到更新的日期值。我已经尝试在onCreate、onStart、onResume、instanceItem等中重新获取数据

tabs代码基于这个简单的官方Google示例项目:

我还没有包含任何代码,因为这个概念可以很容易地从示例项目中复制/理解

        ArticleFragment newFragment = new ArticleFragment();
        Bundle args = new Bundle();
        args.putInt(ArticleFragment.ARG_POSITION, position);
        newFragment.setArguments(args);

        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

        // Replace whatever is in the fragment_container view with this fragment,
        // and add the transaction to the back stack so the user can navigate back
        transaction.replace(R.id.fragment_container, newFragment);
        transaction.addToBackStack(null);

        // Commit the transaction
        transaction.commit();

如果你正在使用,那么你可以在你左边的片段中创建一个侦听日期改变并适当更新它的视图。

左边片段侦听器似乎没有听到当在中间片段中进行更改时所做的更改。@二十二○○○-为什么?更改侦听器是否正在取消注册(在您的注册/取消注册调用中添加日志记录/断点),或者
onSharedPreferenceChanged
是否未被调用?请确保您正在使用对
getSharedReferences
的相同类型调用注册侦听器。我不确定。我已经移动了一个简单的侦听器,目前我有“SharedReferences.RegisterOnSharedReferenceChangeListener”,其中一个onSharedPreferenceChanged和一个onResume中的日志,还有一个unregisterOnShared。。。暂停。