Android - 用于选择语言的启动画面

时间:2013-07-05 15:04:34

标签: android localization

有没有有效的方法如何使用启动画面,它将用于选择应用程序的语言?现在我正在使用SetLocale方法,但它需要重新启动整个应用程序,有没有办法在运行时更改语言?

THX

1 个答案:

答案 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的完整方法。它用于强制将区域设置强制存储到首选项中(退回到默认区域)。