Есть несколько шагов, которые вы должны реализовать
Во-первых, вам нужно изменить локаль вашей конфигурации
Resources resources = context.getResources();
Configuration configuration = resources.getConfiguration();
configuration.locale = new Locale(language);
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
Во-вторых, если вы хотите, чтобы ваши изменения применялись непосредственно к макетучто видно, вы можете либо обновить представления напрямую, либо просто вызвать action.recreate (), чтобы перезапустить текущую активность.
А также вам необходимо сохранить ваши изменения, потому что после того, как пользователь закроет ваше приложение, выпотеря языкового изменения.
Я объяснил более подробное решение в своем блоге Изменение языка программно в Android
По сути, вы просто вызываете LocaleHelper.onCreate () для своего приложениякласс, и если вы хотите изменить локаль на лету, вы можете вызвать LocaleHelper.setLocale ()