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:

  • Silenciar el sonido global en Android
  • Permitir rotación / paisaje en un fragmento
  • Cómo generar simple-xml java objeto anotado desde el esquema xsd
  • Se encontraron 2 versiones de android-support-v4.jar en la lista de dependencias appcompat en android
  • Errores de grabación de audio y video en android
  • MediaRecorder se bloquea al iniciar
  •  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?

  • No se puede convertir de android.app.FragmentManager a android.support.v4.app.FragmentManager
  • Android LocationRequest: obtener una devolución de llamada cuando la solicitud caduca
  • Tengo un error: setOnItemClickListener no se puede utilizar con un spinner, ¿qué está mal?
  • Android: ¿Proporciona sugerencias de búsqueda recientes sin actividad de búsqueda?
  • ¿Cómo puedo comprobar la versión del sistema de Android?
  • ¿Cómo desactivo explícitamente el modo de flujo en bloque para las conexiones HTTP en Android?
  • 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.