有没有什么有效的方法可以让启动画面用于选择应用程序的语言?现在我正在使用 SetLocale 方法,但它需要重新启动整个应用程序,有什么方法可以在运行时更改语言?
谢谢
有没有什么有效的方法可以让启动画面用于选择应用程序的语言?现在我正在使用 SetLocale 方法,但它需要重新启动整个应用程序,有什么方法可以在运行时更改语言?
谢谢
您可能不会重新启动应用程序,而只是“重新加载”活动(或者,在您的情况下,在设置区域设置后输入新的活动),在您在初始屏幕中选择语言后调用以下方法。
public static void reload(Activity activity) {
Intent intent = activity.getIntent();
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
activity.finish();
activity.overridePendingTransition(0, 0);
activity.startActivity(intent);
activity.overridePendingTransition(0, 0);
}
两者overridePendingTransition(0, 0)
都在那里,因为我发现如果我想剪掉退出和进入“回收”活动的动画,这两者都是必要的。此外,ICS 和 JB 之间的行为不同,所以我也留下了多余的setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
.
(我也使用上面的方法在黑暗和光明全息之间应用“动态”主题切换)。
编辑:
无论如何,要更改语言环境,我使用以下内容:
locale = new Locale(param0, param1);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
包含
android:configChanges="locale|orientation|screenSize|keyboard|keyboardHidden"
进入清单,在使用此方法的活动下。
如果您愿意,我可以将源发布(或链接到)我用来在onCreate(...)
我的应用程序的每个方法中初始化语言环境的完整方法。它用于将区域设置强制为存储在首选项中的区域(回退到默认区域)。