Jump to content

accéder au resources de partout


Recommended Posts

Bonjour,

J'ai créé une classe qui a besoin d'accéder aux ressources graphiques de l'application de tel sorte que si j'importe cette classe dans 2 projets différents les valeurs seront customisées.

Malheureusement je n'ai pas trouvé la ligne magique (si elle existe) pour y arriver. Pour le moment je passe le context à la création de mon objet mais cela me pose des problèmes pour le rendre du coup Parcelable (context ne l'étant pas...)

Voici mon bout de code :

public class Toto implements Parcelable {
private static Bitmap defaultSmallPic;
private Context   	context;
private Bitmap    	smallPic;

public Toto(Context context) {
   	this.context = context;
}

public Toto(Parcel in) {
   	readFromParcel(in);
}

public Bitmap setSmallPic(Bitmap B) {
   	smallPic = b;
}

public Bitmap getSmallPic() {
   	if (this.smallPic == null) {
       	if (Toto.defaultSmallPic == null)
           	Toto.defaultSmallPic = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon);
       	return Toto.defaultSmallPic;
   	}
   	return smallPic;
}


@Override
public void writeToParcel(Parcel out, int flags) {
   	out.writeParcelable(context, flags);  // ERROR context not parcelable
   	out.writeParcelable(smallPic, flags);
}

public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
                                      				public Toto createFromParcel(
                                              				Parcel in) {
                                          				return new Toto(in);
                                      				}

                                      				public Toto[] newArray(
                                              				int size) {
                                          				return new Toto[size];
                                      				}
                                  				};

public void readFromParcel(Parcel in) {
   	context = in.readParcelable(getClass().getClassLoader()); // ERROR
   	smallPic = in.readParcelable(getClass().getClassLoader());
}
}

Une bonne âme pourrait-elle me donner quelques pistes de réflexion ? Le but étant si possible de virer la dépendance au context.

Merci d'avance

Link to comment
Share on other sites

Hélas, à part passer le contexte aux méthodes qui en ont besoin plutôt qu'au constructeur, pour que ton objet n'ait plus besoin de l'attribut context et soit à nouveau parcelable, je n'ai guère de proposition.

C'est une idée oui, j'ai perdu pas mal de temps à chercher une autre alternative du coup je vais faire ça.

Merci

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...