Android 如何在运行模式下将新语言应用于应用程序

Android 如何在运行模式下将新语言应用于应用程序,android,Android,我在自己的应用程序设置中更改语言。如何在设置活动中直接加载新语言 我找到了解决办法,去参加其他活动,而不是改变语言。我想早点 我更改语言的代码: SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); String language =SP.getString("language", "en"); android.content.res.Configuration config

我在自己的应用程序设置中更改语言。如何在设置活动中直接加载新语言

我找到了解决办法,去参加其他活动,而不是改变语言。我想早点

我更改语言的代码:

SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String language =SP.getString("language", "en");
android.content.res.Configuration config = new android.content.res.Configuration();
config.locale = new Locale(language);
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
我的OnConfiguration更改方法:

  @Override
public void onConfigurationChanged(Configuration locale) {
    super.onConfigurationChanged(locale);
    Toast.makeText(settings.this, "test", Toast.LENGTH_SHORT).show();

    SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
    String language =SP.getString("language", "en");
    android.content.res.Configuration config = new android.content.res.Configuration();
    config.locale = new Locale(language);
    getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());

您需要实现
onConfigurationChanged
-请参阅:然后“重新设置”您的文本。我将onConfigurationChanged添加到加载首选项片段的设置类中。但是应用程序并没有进入我添加的IDmanifest:android:configChanges=“layoutDirection | locale”显示您的
onConfigurationChanged
方法的外观。这是你需要重新设置文本的地方。我刚刚意识到我在这里回答了另一个与你相近的问题:-另请参阅:如何完全实现。好的。我在activityy中添加了一个按钮。如果我按下此按钮,设置将重新加载。在我看来,这不是最好的解决方案,因为我希望在发生更改时重新加载设置,但这是一个解决方案,谢谢大家