アプリの言語をプログラムで設定しようとしていますが、一部の文字列しか変更されません。英語のデフォルト文字列がある値フォルダーがあります。次に、values-frを作成し、すべての文字列を自分でフランス語に翻訳したので、英語のstrings.xmlがある(英語の)デフォルト値フォルダーと、フランス語のstrings.xmlがあるvalues-frフォルダーがあります。
onCreate と onResume の言語を変更するために使用するコードは次のとおりです。
String languageToLoad = "fr"; // your language
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
ただし、一部の文字列のみが変更されます。たとえば、好みのすべての文字列が変更されますが、メインアクティビティの文字列は同じままです。何が原因でしょうか?