我的 android 应用程序是双语的。所以我有 2 个 res 文件夹值和 value-sw(用于斯瓦希里语)。我在设计和运行时都从这个文件中获取字符串值。例如在布局中:
android:hint="@string/Officer"
在代码中:
getResources().getString(R.string.Officer);
要更改语言环境设置,我有调用 onCreate() 的函数,如下所示:
public void ChangeLanguage(Context ctx,String Language){
Resources res = ctx.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration config = res.getConfiguration();
config.locale = new Locale(Language.toLowerCase());
res.updateConfiguration(config, dm);
}
一切正常。只有当我改变方向时才会出现问题。
例如,在启动时,我将语言设置为斯瓦希里语。所以一切都在斯瓦希里语。现在,如果我将方向从垂直更改为水平或反之亦然。我期望在布局中设置的文本框提示仍保留在斯瓦希里语中。但是 getResources().getString(R.string.Officer); 从默认值文件中获取值,即英语。
有什么建议么?