Convertir cadena que contiene un ID en un Integer-ID

Tengo una pregunta corta:

¿Cómo es posible convertir un String, que contiene el Id de un Drawable, que es

String idString = "R.drawable.bubblegum"; 

A un entero,

 idInt 

De modo que pueda utilizar ese ID para la referencia de una imagen (, que se utiliza en un SimpleAdapter)

Por lo tanto, para dar un ejemplo, no puedo hacer eso:

 bubble.setImageDrawable(this.getResources().getDrawable(idString)); //not possible, cause idString is a String an not an Id/Int 

Por lo tanto, tengo la cadena que contiene el ID, pero por desgracia como una cadena.

¡Gracias!

Aunque esta pregunta ya es bastante antigua, lo que te falta es que "id" y "drawable" son diferentes tipos de recursos. Así que en lugar de

 getResources().getIdentifier(stringId, "id", "my.Package"); 

sus

 getResources().getIdentifier(stringId, "drawable", "my.Package"); 

También puede obtener el nombre del paquete con el contexto de la actividad como activityContext.getPackageName()

 /** * Returns Identifier of String into it's ID as defined in R.java file. * @param pContext * @param pString defnied in Strings.xml resource name eg: action_item_help * @return */ public static int getStringIdentifier(Context pContext, String pString){ return pContext.getResources().getIdentifier(pString, "string", pContext.getPackageName()); } 

Llame a getIdentifier() en el objeto Resources que obtiene a través de getResources() , como se ve en estas preguntas de StackOverflow:

  • ¿Es posible en Android para findView por id de cadena?
  • Android findViewbyId con una cadena variante
  • ¿Cómo acceder a recursos R.string.xxx de un método pasando la cadena 'xxx' como parámetro a ese método?
  • Crear dinámicamente un identificador de recurso
  • ¿Cómo acceder a los valores de strings.xml dinámicamente?
  • Recurso dibujable utilizando una variable

entre otros.

Podrías intentar lo siguiente

 int id = getResources().getIdentifier("arr_name"+positionSelected, "array", rootview.getContext().getPackageName()); 

Yo uso en el menú desplegable de hilandero, obtener la cadena de la matriz seguir spinner padre puede ayudarle!

int idInt = R.drawable.bubblegum;

A menos que algo me falte aquí.

Si su idString es constante, es decir, no cambia durante el tiempo de ejecución, siga la respuesta de DeeV. Si cambia, puedes echar un vistazo al método getIdentifier .

Al menos, no pude conseguir una solución para este problema. Parece que no hay manera de convertir una cadena "R.id.mytext" en un entero como R.id.mytext que se puede utilizar en findViewById (R.id.myText).

  • Cómo limitar los datos añadidos por bucle en sqlite android
  • Android, cadena de recursos no encontrado
  • Android: recupera la matriz de cadenas de los recursos
  • Subíndice y superíndice una cadena en Android
  • Android: Cómo hacer referencia a cadenas en una definición de cadena
  • Problemas de memoria con frecuentes conversiones de Integer.toString ()
  • ¿Cómo puedo referenciar algo en el archivo /values/strings.xml programatically?
  • Cómo obtener una cadena de AsyncTask?
  • ¿Cómo obtener la ID de Android para un elemento de menú en Android?
  • Recursos de cadena de XML vs cadenas constantes de Java?
  • Cadena multicolor (androide)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.