Est-il possible de placer une icône personnalisée pour chaque élément de groupe? Comme pour le téléphone je voudrais placer un téléphone, pour le logement je voudrais placer une maison. Voici mon code, mais il continue à lancer un avertissement et se bloque sur moi.Android - Icônes personnalisées dans ListView
ListView myList = (ListView) findViewById(R.id.myList);
//ExpandableListAdapter adapter = new MyExpandableListAdapter(data);
List<Map<String, Object>> groupData = new ArrayList<Map<String, Object>>();
// List<List<Map<String, Object>>> childData = new ArrayList<List<Map<String, String>>>();
Iterator it = data.entrySet().iterator();
while (it.hasNext())
{
//Get the key name and value for it
Map.Entry pair = (Map.Entry)it.next();
String keyName = (String) pair.getKey();
String value = pair.getValue().toString();
//Add the parents -- aka main categories
Map<String, Object> curGroupMap = new HashMap<String, Object>();
groupData.add(curGroupMap);
Log.i("VAL", keyName);
if (keyName.equalsIgnoreCase("Phone"))
curGroupMap.put("ICON", findViewById(R.drawable.phone_icon));
else if (keyName.equalsIgnoreCase("Housing"))
curGroupMap.put("ICON", findViewById(R.drawable.house_icon));
else
curGroupMap.put("ICON", findViewById(R.drawable.house_icon));
curGroupMap.put("NAME", keyName);
curGroupMap.put("VALUE", value);
}
// Set up our adapter
mAdapter = new SimpleAdapter(
mContext,
groupData,
R.layout.exp_list_parent,
new String[] { "ICON", "NAME", "VALUE" },
new int[] { R.id.photoAlbumImg, R.id.rowText1, R.id.rowText2 }
);
myList.setAdapter(mAdapter);
L'erreur que je reçois:
05-28 17:36:21.738: WARN/System.err(494): java.io.IOException: Is a directory
05-28 17:36:21.809: WARN/System.err(494): at org.apache.harmony.luni.platform.OSFileSystem.readImpl(Native Method)
05-28 17:36:21.838: WARN/System.err(494): at org.apache.harmony.luni.platform.OSFileSystem.read(OSFileSystem.java:158)
05-28 17:36:21.851: WARN/System.err(494): at java.io.FileInputStream.read(FileInputStream.java:319)
05-28 17:36:21.879: WARN/System.err(494): at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:183)
05-28 17:36:21.908: WARN/System.err(494): at java.io.BufferedInputStream.read(BufferedInputStream.java:346)
05-28 17:36:21.918: WARN/System.err(494): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
05-28 17:36:21.937: WARN/System.err(494): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:459)
05-28 17:36:21.948: WARN/System.err(494): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:271)
05-28 17:36:21.958: WARN/System.err(494): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:296)
05-28 17:36:21.978: WARN/System.err(494): at android.graphics.drawable.Drawable.createFromPath(Drawable.java:801)
05-28 17:36:21.988: WARN/System.err(494): at android.widget.ImageView.resolveUri(ImageView.java:501)
05-28 17:36:21.998: WARN/System.err(494): at android.widget.ImageView.setImageURI(ImageView.java:289)
Merci d'avance pour votre aide !!
Je fixe cela, mais je suis toujours la même erreur rencontre avec le code est le suivant: \t \t \t si (keyName.equalsIgnoreCase ("Téléphone")) \t \t \t \t curGroupMap.put ("ICON", (ImageView) findViewById (R.drawable.phone_icon)); \t \t \t else if (keyName.equalsIgnoreCase ("Logement")) \t \t \t \t curGroupMap.put ("ICON", (ImageView) findViewById (R.drawable.house_icon)); \t \t \t autre \t \t \t \t curGroupMap.put ("ICON", (ImageView) findViewById (R.drawable.house_icon)); – Ryan
@Ryan: la deuxième partie de votre commentaire contredit directement la première partie. – JRL
Excuses, j'ai modifié mon code ci-dessus pour refléter ce à quoi il ressemble actuellement. Merci d'avoir pris le temps de m'aider. C'est grandement apprécié! – Ryan