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
- Android: cómo determinar la última letra totalmente visible en TextView?
- Comportamiento de división de cadena extraña
- "El prefijo" xliff "para el elemento" xliff: g "no está enlazado"
- Android incompatibles tipos de estudio necesarios java.lang.String encontrado java.lang.String
- Convertir una ruta de acceso de archivo a Uri en Android
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!
- ¿Carga la cadena específica de un recurso?
- Obtener Null String mientras obtengo datos de EditText en android
- Cómo colorear diferentes partes del texto dibujado en un lienzo en Android?
- ¿Cómo pasar el valor de la cadena separada por coma en la consulta SQL?
- Geting error / warning para plurales: "La cantidad 'uno' coincide con más de un número específico ..."
- Concatenar dos cadenas
- Alternativas compactas a Java ArrayList <String>
- Cómo comprobar si TextView contiene una cadena determinada
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).
- AdRequest.Builder no se puede resolver con un tipo
- Cómo enviar una solicitud getForObject con parámetros Spring MVC