Android应用程序中的语言翻译错误

Android应用程序中的语言翻译错误,android,android-layout,kotlin,translation,Android,Android Layout,Kotlin,Translation,我在语言翻译英语->西班牙语和其他方面有问题。 我在字符串资源中有两个文件: strings.xml=>English 男性 女性 strings.xml=>西班牙语 佩克诺 亨布拉 由于某些原因,当应用程序位于移动设备的RAM内存中,但焦点不在,并且我更改了系统语言时,应用程序会选择以前选择的语言。它用错误的字符串读取错误的文件(它读取以前的语言)。但当我从RAM内存中删除应用程序,在移动设备中选择下一种语言,再次登录应用程序时,一切正常。它使用正确的字符串选择正确的资源。有人知道发生

我在语言翻译
英语->西班牙语和其他方面有问题。
我在字符串资源中有两个文件:

strings.xml=>English


男性
女性
strings.xml=>西班牙语


佩克诺
亨布拉

由于某些原因,当应用程序位于移动设备的RAM内存中,但焦点不在,并且我更改了系统语言时,应用程序会选择以前选择的语言。它用错误的字符串读取错误的文件(它读取以前的语言)。但当我从RAM内存中删除应用程序,在移动设备中选择下一种语言,再次登录应用程序时,一切正常。它使用正确的字符串选择正确的资源。有人知道发生了什么吗?

为了处理语言更改,您需要通过处理配置更改来实现这一点

在您的
AndroidManifest.xml

<activity android:name=".MyActivity"
      android:configChanges="locale"
      android:label="@string/app_name">
在科特林:

 override fun onConfigurationChanged(newConfig: Configuration) {
    super.onConfigurationChanged(newConfig);
    // reapply your strings here
    // invalidating the views should work
    // the line below should force all the views to redraw
    // but you can do a more selective update to improve
    // performance 
    findViewById(android.R.id.content).invalidate()
}

声明您在AndroidManifest.xml中处理了一些
configChanges
?您能解释一下吗?我知道android manifest.xml在哪里,但键入什么和在哪里?我的意思是,清单文件中是否为您的活动声明了
configChanges=“locale”
或类似的声明?是的,这没有帮助。我这样做了,我在活动中添加了此代码和清单文件。但什么也没发生,当我将调试断点放在这个函数onConfigurationChanged上时,我不能停在这里(调试)。什么时候调用该函数?在我的活动中,该函数具体放在哪里?另外,我需要Kotlin中的代码,而不是Java中的代码,如果您不了解Kotlin,请不要介意,我将从Java翻译到Kotlin。谢谢如果应用程序正在运行,而您更改了区域设置并将应用程序返回前台,则应调用该应用程序。我也可以展示kotlin的版本,几乎一样。
 override fun onConfigurationChanged(newConfig: Configuration) {
    super.onConfigurationChanged(newConfig);
    // reapply your strings here
    // invalidating the views should work
    // the line below should force all the views to redraw
    // but you can do a more selective update to improve
    // performance 
    findViewById(android.R.id.content).invalidate()
}