Tengo una aplicación de texto a voz donde el usuario puede seleccionar un idioma y también seleccionar una voz masculina o femenina. El problema es que para cada idioma hay diferentes cadenas que se utilizan para llamar a la voz masculina y femenina, pero en mi preferencia solo tengo dos opciones (masculina y femenina).Uso de preferencia de lista en 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>
Estoy tratando de encontrar la manera de solo hacer referencia a las voces de voz masculinas y femeninas correspondientes según el idioma seleccionado. ¿Es posible hacer esto aquí o tengo que escribir algún código que cambie los valores de la matriz de VoiceAlias dependiendo del idioma seleccionado?
Gracias de antemano
Gracias, me gusta el enfoque. Sin embargo, ¿qué hace esta línea de código? voiceAlias [(2 * a) + genderData] – Amanni
El valor de a se define en el ciclo for y representa el índice de languageData dentro de languageAlias. El ciclo realiza un ciclo a través de LanguageAlias hasta que encuentra el valor de languageData. El valor de a se multiplica por dos porque las voces existen en pares dentro de voiceAlias. GenderData se agrega a esto. Si el usuario seleccionó hombre, se agrega 0 y se toma la primera opción del par de idiomas. Si es mujer, se agrega 1. – gobernador
después de mirar un poco más de cerca a los documentos, parece que 'ListPreference' desea mantener una Cadena. Si encuentra que este es el caso, solo ajuste la declaración de 'genderData' con' Integer.parseInt (shareprefs.getString ...) ' – gobernador