有没有有效的方法如何使用启动画面,它将用于选择应用程序的语言?现在我正在使用SetLocale方法,但它需要重新启动整个应用程序,有没有办法在运行时更改语言?
THX
答案 0 :(得分:1)
您可能无法重新启动应用,但只是重新加载"活动(或者,在您的情况下,在设置区域设置后输入新的活动),在您的初始屏幕中选择语言后调用下面的方法。
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"
进入Manifest,在使用此方法的活动下。
如果你想我可以将源发布(或链接到)我用于在我的应用程序的每个onCreate(...)
方法中初始化Locale的完整方法。它用于强制将区域设置强制存储到首选项中(退回到默认区域)。