0

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

谢谢

4

1 回答 1

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"

进入清单,在使用此方法的活动下。

如果您愿意,我可以将源发布(或链接到)我用来在onCreate(...)我的应用程序的每个方法中初始化语言环境的完整方法。它用于将区域设置强制为存储在首选项中的区域(回退到默认区域)。

于 2013-07-05T16:53:43.997 回答