我有一个文字转语音应用程序,用户可以选择语言和男声或女声。问题是每种语言都有不同的字符串用于称呼男声和女声,但在我的偏好设置中,我只有两个选项(男声和女声)。
<string-array name="Language">
<item>English (US)</item>
<item>English (UK)</item>
<item>French (France)</item>
<item>Spanish (Spain)</item>
<item>Italian</item>
</string-array>
<string-array name="languageAlias">
<item>"en-US"</item>
<item>"en-GB"</item>
<item>"fr-FR"</item>
<item>"es-ES"</item>
<item>"it-IT"</item>
</string-array>
<string-array name="Voice">
<item>Male</item>
<item>Female</item>
</string-array>
<string-array name="VoiceAlias">
<item>"usenglishmale"</item>
<item>"usenglishfemale"</item>
<item>"ukenglishmale"</item>
<item>"ukenglishfemale"</item>
<item>"eurfrenchmale"</item>
<item>"eurfrenchfemale"</item>
<item>"eurspanishmale"</item>
<item>"eurspanishfemale"</item>
<item>"euritalianmale"</item>
<item>"euritalianfemale"</item>
</string-array>
我正在尝试找到一种方法,根据所选语言只引用相关的男性和女性voiceAlias。这里是否可能实现,还是我必须编写一些代码来根据所选语言更改voiceAlias数组的值?
提前感谢。
ListPreference
想要持久化一个字符串。如果您发现是这种情况,请只需使用Integer.parseInt(shareprefs.getString...)
包装genderData
的声明。 - gobernadorSharedPreferences
在编辑时需要调用edit()
和commit()
或apply()
。 - Jeff Lockhart