Aller au contenu

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

Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...