主要娱乐 Activity
Recreation of Main Activity
我有一个主要的 Activity
,其中包含我的应用 Fragments
的大约 90%。用户登录 activity 后,我在 Master Activity.
的 onCreate()
上添加主要片段
问题是当我在 SettingFragment
(这是一个 PreferenceFragment
)中更改应用程序的语言环境时,我必须重新创建主 Activity
等等 onCreate()
它会再次加载主要片段,这是不可取的(我想继续使用新语言进行设置)。
处理这种情况的最佳方法是什么?我想过从 FragmentManager
检查 SettingFragment
可见性,但在重新创建时它找不到 settingFragment 并且它 returns 总是空的。另一种方法可能是在 sharedPreferences
上写入以检查 MainFragment 是否已加载,但我不确定写入或读取的最佳状态是什么。
您可以将 android:configChanges="locale"
添加到您的 activity,然后在您的片段上您需要覆盖并刷新您的 UI。
@Override
public void onConfigurationChanged(Configuration newConfig) {
// refresh your views here
super.onConfigurationChanged(newConfig);
}
我有一个主要的 Activity
,其中包含我的应用 Fragments
的大约 90%。用户登录 activity 后,我在 Master Activity.
onCreate()
上添加主要片段
问题是当我在 SettingFragment
(这是一个 PreferenceFragment
)中更改应用程序的语言环境时,我必须重新创建主 Activity
等等 onCreate()
它会再次加载主要片段,这是不可取的(我想继续使用新语言进行设置)。
处理这种情况的最佳方法是什么?我想过从 FragmentManager
检查 SettingFragment
可见性,但在重新创建时它找不到 settingFragment 并且它 returns 总是空的。另一种方法可能是在 sharedPreferences
上写入以检查 MainFragment 是否已加载,但我不确定写入或读取的最佳状态是什么。
您可以将 android:configChanges="locale"
添加到您的 activity,然后在您的片段上您需要覆盖并刷新您的 UI。
@Override
public void onConfigurationChanged(Configuration newConfig) {
// refresh your views here
super.onConfigurationChanged(newConfig);
}