如何通过自定义 SettingsActivity 使用 ListPreferences 将所选语言设置为整个应用程序?
How to set selected language to whole app using ListPreferences over custom SettingsActivity?
我最近开始从事 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 上可以找到的所有可能的解决方案,但无法使其可行。我想让用户可以选择应用程序语言而不是设置。我需要一个可行的解决方案,例如 Settings -> Language -> Select language -> Return 到 MainActivity 甚至重新启动应用程序(如果需要)和让用户通过在应用程序中使用不同的语言来使用应用程序,而不管设备系统语言如何。
非常感谢,如果我不够清楚,请告诉我。如果需要,我会尝试提供更多详细信息。
您必须为新语言创建新的字符串文件。 (en,fr 那样)。然后,您必须在设置 activity 中设置 android 语言环境。您可以将所选语言存储在共享首选项中。您可以获得设置语言环境的答案。 Set Locale programmatically
我最近开始从事 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 上可以找到的所有可能的解决方案,但无法使其可行。我想让用户可以选择应用程序语言而不是设置。我需要一个可行的解决方案,例如 Settings -> Language -> Select language -> Return 到 MainActivity 甚至重新启动应用程序(如果需要)和让用户通过在应用程序中使用不同的语言来使用应用程序,而不管设备系统语言如何。
非常感谢,如果我不够清楚,请告诉我。如果需要,我会尝试提供更多详细信息。
您必须为新语言创建新的字符串文件。 (en,fr 那样)。然后,您必须在设置 activity 中设置 android 语言环境。您可以将所选语言存储在共享首选项中。您可以获得设置语言环境的答案。 Set Locale programmatically