Ich habe eine Text-zu-Sprache-Anwendung, wo der Benutzer eine Sprache auswählen und auch eine männliche oder weibliche Stimme auswählen kann. Das Problem ist, dass für jede Sprache unterschiedliche Strings verwendet werden, um die männliche und weibliche Stimme zu benennen, aber in meiner Präferenz habe ich nur zwei Optionen (männlich und weiblich).Verwenden von Listenpräferenz in 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>
Ich versuche einen Weg zu finden, nur die relevanten männlichen und weiblichen voiceAlias abhängig von der gewählten Sprache zu referenzieren. Ist es möglich, dies hier zu tun, oder muss ich einen Code schreiben, der die Werte des voiceAlias-Arrays abhängig von der gewählten Sprache ändert?
Vielen Dank im Voraus
Danke, ich mag den Ansatz. Was aber macht diese Codezeile? voiceAlias [(2 * a) + genderData] – Amanni
Der Wert von a ist in der for-Schleife definiert und stellt den Index von languageData innerhalb von languageAlias dar. Die Schleife durchläuft languageAlias, bis sie den Wert von languageData findet. Der Wert von a wird mit zwei multipliziert, weil die Stimmen paarweise in voiceAlias existieren. GenderData wird hinzugefügt. Wenn der Benutzer männlich gewählt hat, wird 0 hinzugefügt und die erste Option des Sprachpaars wird genommen. Wenn weiblich, wird 1 hinzugefügt. – gobernador
nach einem Blick auf die Dokumente, es sieht aus wie 'ListPreference' will eine Zeichenfolge beibehalten. Wenn dies der Fall ist, wickle einfach die Deklaration von 'genderData' mit' Integer.parseInt (shareprefs.getString ...) 'um. – gobernador