Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Obtener el nombre del atributo de array string

Tengo array de cadena que se parece a esto:

<string-array name="USA"> <item name="NY">001</item> <item name="LA">002</item> <item name="WA">003</item> </string-array> 

Puedo obtener esos números por:

 Resources res = getResources(); int arryid = res.getIdentifier("USA", "array", getPackageName()); String[] numbers = res.getStringArray(arryid); 

Pero, ¿cómo puedo obtener los nombres (NY, LA, WA)? Tenga en cuenta que tengo un montón de condados … Tal vez utilizar un enfoque diferente?

  • Uso de ImageView como fondo para un diseño de Android
  • Dpi valor de "grandes", "medio" y "pequeño" vistas de texto android
  • Resize drawable en el elemento de lista de capas
  • Instanciar una clase interna (Preferencia) en un archivo xml
  • El contenido vertical se alinea en Android EditText
  • Atributos personalizados en styles.xml
  • Cómo actualizar match_parent en un linearLayout después de usar setRotation?
  • ¿Cómo puede obtener el número de versión de manifiesto de las variables XML de la aplicación (disposición)?
  • 3 Solutions collect form web for “Obtener el nombre del atributo de array string”

    En el documento oficial no hay ningún atributo de name para <item> . Así que no creo que haya ninguna manera de conseguir esas llaves.

    Sin embargo, si desea obtener el nombre de string o string-array , puede obtenerlo mediante programación, pero no para el <item> .

    Como "001" es sólo el índice, ¿por qué no simplemente usarlo?

     <string-array name="USA"> <item>NY</item> <item>LA</item> </string-array> 

    Luego utilice el index + 1 para la posición:

     String[] usaStates = getResources().getStringArray(R.array.USA); int index = 0; String firstStateName = usaStates[index]; int firstStatePosition = (index + 1); 

    Aparte de eso, puede usar dos matrices y fusionarlas en un HashMap :

     <string-array name="USA"> <item>NY</item> <item>LA</item> </string-array> <string-array name="USA_pos"> <item>001</item> <item>002</item> </string-array> String[] usaStates = getResources().getStringArray(R.array.USA); String[] usaStatePositions = getResources().getStringArray(R.array.USA_pos); Map <String, String> map = new HashMap<>(usaStates.length); for (int i = 0; i < usaStates.length; i++) { map.put(usaStates[i], usaStatePositions[i]); } 
     String[] numbers = getResources().getStringArray(R.array.USA); 

    Para obtener datos del uso de matriz.

     numbers[id] 

    Agrega una matriz como esta.

     <string-array name="USA"> <item>NY</item> <item>LA</item> <item>WA</item> </string-array> 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.