J'utilise l'exemple d'ImageAdpater fourni dans la documentation de Google pour remplir une grille de tableaux. Ce que j'essaie de faire, c'est de remplir la grille avec un tableau de tableaux dans un fichier xml.
J'utilise TypedArray imgs = getResources().obtainTypedArray(R.array.log_type_icons);
pour accéder au tableau depuis mon activité principale, mais cela ne fonctionne pas dans la classe ImageAdapter.
Le tableau :
<string-array name="log_type_icons">
<item>@drawable/ic_launcher</item>
<item>@drawable/ic_headache</item>
<item>@drawable/ic_man</item>
<item>@drawable/ic_woman</item>
<item>@drawable/ic_kneel</item>
</string-array>
L'adaptateur d'image fonctionnel :
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
Log.i("log tag", "gotten resources: " + mThumbIds);
if (convertView == null) { // if it's not recycled, initialize some
// attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// references to our images
private Integer[] mThumbIds = { R.drawable.ic_headache,
R.drawable.ic_kneel, R.drawable.ic_man, R.drawable.ic_woman,
R.drawable.ic_launcher };
}
Je sais que je pourrais ajouter manuellement les références des objets à dessiner au tableau Integer, mais je fais également référence au tableau xml à partir de mon activité principale. L'idéal serait donc de pouvoir ajouter les références au tableau xml sans avoir à modifier le code. Quelqu'un a-t-il une idée de ce problème ? Est-ce que je fais quelque chose de mal ou est-ce que je rate quelque chose d'évident ?
Toute aide serait appréciée, Merci.