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

Я недавно начал работать с разработкой приложения для 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 Ответ

0 голосов
/ 23 февраля 2019

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

...