studio reparar regenerar quitar importar getresources error como clase archivo java android

reparar - regenerar el archivo r.java en android



Utilizando Android getIdentifier() (3)

Aunque la respuesta de Festus Tamakloe es correcta, encontré una peculiaridad en esta función.

Si está declarando una string-array en un archivo xml, debe acceder a ella llamando a la array tipo de recurso base, utilizando string-array resultados de la string-array de cadenas en el retorno de 0 de anid.

He intentado esto:

r = Resources.getSystem().getIdentifier("ball_red","drawable","com.Juggle2"); Log.i("FindBall","R = "+r);

Y esto:

r = Resources.getSystem().getIdentifier("com.Juggle2:drawable/ball_red", null, null);

Pero ''r'' siempre termina en cero.

Estoy llamando a esta línea desde una clase de ayuda que no es una Actividad y no extiende nada, por lo que no puedo simplemente llamar a getResources() , pero puedo pasarla desde mi SurfaceView .

Finalmente, quiero reemplazar "ball_red" con una variable, pero lo primero es lo primero. Esto no está funcionando.

com.Juggle2 es de hecho mi nombre de paquete. drawable es la carpeta res que se encuentra y, de hecho, el nombre del archivo es ball_red .

R.java dice:

public static final int ball_red=0x7f020027;

Así que no estoy seguro de por qué no está funcionando.

Así que no puedo usar los recursos, debo pasar un contexto y lo hago de esta manera: aquí dentro:

class Collection extends SurfaceView implements SurfaceHolder.Callback {

Estoy creando una nueva instancia de mi clase y le paso getContext() como parámetro.


Para los usuarios de Xamarin, tuve el problema de haber agregado un icono con letras en minúsculas y mayúsculas (por ejemplo, iconVaccine.png) y se refería al nombre de uppername iconVaccine.

Xamarin le permitirá hacer esto (aunque no debería), pero cuando se compila la aplicación, el nombre se aplana a minúsculas, por lo que debe consultar la variante de minúsculas de la siguiente manera:

Image Name: iconVaccine.png Xamarin reference: iconVaccine (as created in Resource.designer.cs, but will fail) Correct Reference: iconvaccine

¡Espero que ayude!


Ya que estás dentro de una actividad es suficiente escribir

int resId = YourActivity.this.getResources().getIdentifier( "ball_red", "drawable", YourActivity.this.getPackageName() );

o si no lo estás llamando desde una clase interna

int resourceID = getResources().getIdentifier( "ball_red", "drawable", getPackageName() );

Nota

getIdentifier() Returns 0 if no such resource was found. (0 is not a valid resource ID.)

Comprobar

Compruebe también en su R.java si existe un drawable con el nombre ball_red

p.ej:

public static final class drawable { public static final int ball_red = 0x7f020000; }

EDITAR Si no está en ninguna actividad, debe pasar un context instead of resources as parameter luego hacer esto

int resId = context.getResources().getIdentifier( "ball_red", "drawable", context.getPackageName() );