Page 1 of 1
LIST_ITEM_STATUS_CHECKED setzen in ListView
Posted: Sun 26. Aug 2012, 10:20
by TopsyKrett
Hallo,
noch eine Frage: In der ListView kann man für jedes Element den Slider für ON/OFF in der rechten Spalte einblenden. Wie man den Wert (ON/OFF) abfragt, weiß ich, nämlich über "status" in OnListViewItemStateChanged(). Wie kann ich aber den Wert des Sliders setzen? Per Default sind die Werte immer auf unchecked. Ich möchte die Werte aber auf checked setzen in CreateItem().
Danke + viele Grüße
Re: LIST_ITEM_STATUS_CHECKED setzen in ListView
Posted: Sun 26. Aug 2012, 10:30
by Catscratch
Gehts nicht mit SetItemChecked(...) ?
Re: LIST_ITEM_STATUS_CHECKED setzen in ListView
Posted: Sun 26. Aug 2012, 10:49
by TopsyKrett
Herzlichen Dank! Damit geht es. Ich hatte immer nach einer Methode in CustomItem gesucht.
Ich würde es sinnvoller finden, wenn man den Status gleich beim Generieren des Items setzen könnte. Wieso ist das so umständlich? Jetzt muss ich nach dem Erzeugen der Liste nochmal manuell alle Elemente durchlaufen und jeweils den Status definieren. Geht das nicht effizienter? Hmpf..
Re: LIST_ITEM_STATUS_CHECKED setzen in ListView
Posted: Sun 26. Aug 2012, 11:22
by Catscratch
Was damit?
Osp::Ui::Controls::CustomItem::SetElementSelectionEnabled(...)
Re: LIST_ITEM_STATUS_CHECKED setzen in ListView
Posted: Sun 26. Aug 2012, 11:26
by TopsyKrett
Da wusste ich nicht, was ich als Parameter "elementId" angeben soll? Dachte mit "-1" würde es gehen, klappt aber nicht. Hast du eine Idee? Vielleicht peile ich auch das Konzept nicht..
result Osp::Ui::Controls::CustomItem::SetElementSelectionEnabled ( int elementId, bool enable ) ;
Re: LIST_ITEM_STATUS_CHECKED setzen in ListView
Posted: Sun 26. Aug 2012, 11:37
by Catscratch
Mit ElementID übergibst du die ID von dem Element was drin steckt.
Also wenn du ein CustomItem hast und dort zB mit ADD 3 Objekte hinzufügst.
AddElememt( new Rectangle(), ID_ELEM_1, "Element 1");
AddElememt( new Rectangle(), ID_ELEM_2, "Element 2");
AddElememt( new Rectangle(), ID_ELEM_3, "Element 3");
Und jetzt willst du das 2. Element auf enabled setzen, dann machst du halt:
SetElementSelectionEnabled (ID_ELEM_2, true);
Re: LIST_ITEM_STATUS_CHECKED setzen in ListView
Posted: Sun 26. Aug 2012, 14:03
by TopsyKrett
Ja, so habe ich das verstanden gehabt. Aber ich möchte den Slider von false auf true setzen. Im linken Bild
beim dritten Element von oben soll der Slider Button per Default auf true stehen, nicht auf false. Da der Slider Button doch automatisch generiert wird, hat er keinen Element-ID von mir zugewiesen bekommen. Also kann ich keinen Element-ID für die Set-Funktion abgeben. Oder? Sorry, wenn ich auf dem Schlauch stehe..
Re: LIST_ITEM_STATUS_CHECKED setzen in ListView
Posted: Sun 26. Aug 2012, 15:15
by mortara
Das müsste mit
result Osp::Ui::Controls::ListView::SetItemChecked(int index, bool check )
gehen.
index ist dann nicht die ElementID innerhalb eines Items, sondern bezieht sich auf die listen-zeile .....
Re: LIST_ITEM_STATUS_CHECKED setzen in ListView
Posted: Sun 26. Aug 2012, 18:10
by TopsyKrett
Danke, das hatte mir Catscratch auch schon empfohlen. Hatte mich nur gefragt, ob man den Status nicht direkt beim Erzeugen in CreateItem() setzen kann. Wäre eben komfortabel.. und man möchte ja sauber programmieren

Re: LIST_ITEM_STATUS_CHECKED setzen in ListView
Posted: Sun 26. Aug 2012, 18:49
by sCion
Komfortabeler heißt nicht sauberer
Geschrieben mit badaBoard!