Как установить выбранный язык для всего приложения, используя ListPreferences поверх пользовательских настроек Activity?

Я недавно начал работать над разработкой приложений для Android и знаю, что подобный вопрос уже задавался. Но, тем не менее, я не мог найти решение, чтобы решить мою проблему. У меня есть следующая проблема: я использую кастом SettingsActivity который включает в себя SettingsFragment следующее:

SettingsActivity.kt

class SettingsActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        fragmentManager.beginTransaction().add(android.R.id.content, SettingsFragment()).commit()
    }

    class SettingsFragment : PreferenceFragment() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            addPreferencesFromResource(R.xml.settings_pref)
        }
    }
}

в settings_pref.xml у меня есть ListPreference следующее:

settings_pref.xml

   <ListPreference
        android:key="list"
        android:title="@string/language"
        android:summary="@string/sel_language"
        android:defaultValue="1"
        android:entries="@array/pref_language_list_titles"
        android:entryValues="@array/pref_language_list_values"
        android:negativeButtonText="@null"
        android:positiveButtonText="@null"/>

Я перепробовал все возможные решения, которые мог найти в Google, но не смог сделать его работоспособным. Я хотел бы дать пользователям возможность выбирать язык приложения вместо настроек. Мне нужно возможное и работающее решение, такое как Настройки -> Язык -> Выбрать язык -> Вернуться к MainActivity или даже перезапустить приложение (если требуется) и позволить пользователю использовать приложение с использованием другого языка в приложении независимо от устройства. системный язык.

Большое спасибо заранее и, пожалуйста, дайте мне знать, если я не достаточно ясно. Я постараюсь дать более подробную информацию, если потребуется.

1 ответ

Решение

Вы должны создать новый строковый файл для нового языка. (ru, т. е. как это). Тогда вам придется установить Android-локаль в настройках деятельности. Вы можете сохранить выбранный язык в общих настройках. Вы можете получить ответ для заданной локали. Установите Locale программно

Другие вопросы по тегам