Je rencontre des problèmes avec ExpandableListView. Ce que je veux, c'est que chaque groupe soit de la colonne "bond", ce qui n'est pas unique, mais je veux que les groupes soient uniques (c'est-à-dire que chaque valeur de "bond" ne devrait avoir qu'un seul groupe). Chaque valeur du groupe contient des données dans d'autres colonnes qui doivent être affichées. Le problème est qu'il semble que je peux soit utiliser l'opérateur SQL DISTINCT avec une colonne (et ensuite getChildrenCursor() lance une exception IllegalStateException), soit ne pas utiliser l'opérateur DISTINCT et avoir chaque groupe dupliqué.Valeurs distinctes dans Android ExpandableListView
Quelqu'un peut-il suggérer une solution pour cela?
public void onCreate(Bundle saved) {
super.onCreate(saved);
DatabaseHelper dh = new DatabaseHelper(this);
dh.openDataBase();
db = dh.getReadableDatabase();
String query = "SELECT DISTINCT bond FROM spectro";
Cursor c = db.rawQuery(query, null); //throws exception when group opened
//Cursor c = db.query("spectro", new String[] { "_id", "name", "bond", ir },
//null, null, null, null, null) - gives duplicate groups
ExpandableListAdapter a = new IRCursorAdapter (this,
c, android.R.layout.simple_expandable_list_item_1, new String[] { "bond" },
new int[] { android.R.id.text1 }, R.layout.row_doubleend,
new String[] { "name", "ir" }, new int[] { R.id.double_item1, R.id.double_item2 });
this.setListAdapter(a);
}
protected class IRCursorAdapter extends SimpleCursorTreeAdapter {
public IRCursorAdapter(Context context, Cursor cursor, int groupLayout,
String[] groupFrom, int[] groupTo, int childLayout,
String[] childFrom, int[] childTo) {
super(context, cursor, groupLayout, groupFrom, groupTo, childLayout, childFrom,
childTo);
}
@Override
protected Cursor getChildrenCursor(Cursor groupCursor) {
Cursor c = db.query("spectro", new String[] {"_id", "name", "bond", "ir"},
"bond=?", new String[] { groupCursor.getString(0) }, null, null, null);
startManagingCursor(c);
return c;
}
};
voici ce que ma table regarde comme- le lien est ce que je veux être unique:
_id | nom | lien | ir
1 | nom 1 | lien 1 | ir 1
2 | nom 2 | lien 1 | ir 2
3 | nom 3 | lien 2 | ir 3
4 | nom 4 | lien 3 | ir 4
désolé si ce n'est pas particulièrement clair, mais merci pour votre aide!
yup, utilisé le groupe sur la requête et fonctionne parfaitement –