我有一個文本到語音應用程序,用戶可以選擇一種語言並選擇一個男性或女性的聲音。問題在於,對於每種語言都有不同的字符串用於稱呼男性和女性的聲音,但在我的偏好中,我只有兩種選擇(男性和女性)。在Android中使用列表首選項
<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數組的值?
由於提前
謝謝,我喜歡這種方法。但是,這行代碼是做什麼的? voiceAlias [(2 * a)+ genderData] – Amanni 2012-03-26 23:34:05
a的值在for循環中定義,它代表languageAlias中的languageData的索引。循環遍歷languageAlias直到找到languageData的值。 a的值乘以2,因爲voiceAlias中的聲音是成對存在的。 genderData添加到此。如果用戶選擇男性,則添加0,並獲取語言對的第一個選項。如果是女性,則添加1。 – gobernador 2012-03-27 01:42:58
在看了一下文檔後,它看起來像'ListPreference'想要保持一個字符串。如果您發現這種情況,只需用'Integer.parseInt(shareprefs.getString ...)'包裝'genderData'的聲明' – gobernador 2012-03-29 03:09:58