Android 主体活动的再创造

Android 主体活动的再创造,android,android-fragments,android-preferences,application-settings,recreate,Android,Android Fragments,Android Preferences,Application Settings,Recreate,我有一个主要的活动,其中包含大约90%的应用程序片段。在用户登录登录活动之后,我在主活动的onCreate()上添加主片段 问题是当我在设置片段(这是一个首选片段)中更改应用程序的区域设置时,我必须重新创建主活动,因此onCreate()会再次加载不需要的主片段(我想继续使用新语言进行设置) 处理这种情况的最佳方法是什么?我曾想过从FragmentManager检查SettingFragment的可见性,但在重新创建时,它找不到SettingFragment,并且它总是返回null。另一种方法可

我有一个主要的
活动
,其中包含大约90%的应用程序
片段
。在用户登录登录活动之后,我在主活动的
onCreate()
上添加主片段

问题是当我在
设置片段
(这是一个
首选片段
)中更改应用程序的区域设置时,我必须重新创建主
活动
,因此
onCreate()
会再次加载不需要的主片段(我想继续使用新语言进行设置)


处理这种情况的最佳方法是什么?我曾想过从
FragmentManager
检查
SettingFragment
的可见性,但在重新创建时,它找不到SettingFragment,并且它总是返回null。另一种方法可能是在
SharedReferences
上写入,以检查是否加载了MainFragment,但我不确定写入或读取的最佳状态。

您可以将
android:configChanges=“locale”
添加到您的活动中,然后在片段上覆盖并刷新您的UI

@Override
public void onConfigurationChanged(Configuration newConfig) {
  // refresh your views here
  super.onConfigurationChanged(newConfig);
}

您可以将
android:configChanges=“locale”
添加到您的活动中,然后在您的片段上覆盖并刷新您的UI

@Override
public void onConfigurationChanged(Configuration newConfig) {
  // refresh your views here
  super.onConfigurationChanged(newConfig);
}

您应该将SharedReference用于标记等简单的内容。检查一下你所有的选择,你就会明白为什么。顺便说一句,如果没有其他人为你的问题写答案,你可以这样做,过一段时间后,接受它。问题的正确格式有助于可读性,并增加获得好答案的机会。你应该使用SharedReferences作为简单的参考,如标志。检查一下你所有的选择,你就会明白为什么。顺便说一句,如果没有其他人为你的问题写答案,你可以这样做,过一段时间后,接受它。问题的正确格式有助于可读性,并增加获得好答案的机会。