2011-06-02 17 views
5

Estoy en una situación en la que tengo que usar el drawable folder de mi aplicación de una clase que no sea de actividad. He intentado utilizar la actividad de los padres con el siguiente código:Cómo acceder desde la clase no activable a la clase

ParentActivity pa = new ParentActivity(); 
Drawable d = pa.getResources()..getDrawable(R.drawable.icon);` 

Pero esto me devuelve una NulLPointerException. ¿Cómo puedo lograr esto?

Respuesta

12

Pase el objeto de contexto como un parámetro al constructor de la clase no Actividad.

A continuación, utilice ese objeto de contexto para obtener los recursos.

Ejemplo

public class MyClass { 
    Context context; 
    public MyClass(Context context) { 
     this.context = context; 
    } 

    public void urMethod() { 
    Drawable drawable=context.getResources().getDrawable(R.drawable.icon); 
    // use this drawable as u need 
    } 
} 
+1

¿Es solo yo o la "R" o (los recursos que se llaman en Java) se importa a la clase, así que esto no es genérico en absoluto? –

+1

Tenga en cuenta que, desde la API 22, la forma correcta de obtener los objetos dibujables es: 'Drawable drawable = ContextCompat.getDrawable (context, R.drawable.icon)' –

4
import com.(package-name).R; 

entonces usted puede acceder a toda su dibujable por ejemplo R.drawable.icon.

Cuestiones relacionadas