コンテキスト構成でそれを行うことができ、API +17 から次のように機能します。
public static String getDefaultString(Context context, @StringRes int stringId){
Resources resources = context.getResources();
Configuration configuration = new Configuration(resources.getConfiguration());
Locale defaultLocale = new Locale("en"); // default locale
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
LocaleList localeList = new LocaleList(defaultLocale);
configuration.setLocales(localeList);
return context.createConfigurationContext(configuration).getString(stringId);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
configuration.setLocale(defaultLocale);
return context.createConfigurationContext(configuration).getString(stringId);
}
return context.getString(stringId);
}
以前のバージョンの Android では、次のようなものを使用できます。
public static String getDefaultString(Context context, @StringRes int stringId){
Resources resources = context.getResources();
Locale defaultLocale = new Locale("en");// default locale
configuration.locale = newLocale;
resources.updateConfiguration(configuration, res.getDisplayMetrics());
return resources.getString();
}
しかし、アプリの現在のコンテキストを変更できると思います。また、アプリでデフォルトの言語を使用しない場合、ローカライズに問題が発生します。