Listviews & php-Webservice

  • 7 Antworten
  • Letztes Antwortdatum
F

Fant

Neues Mitglied
0
Erstmal Hallo. Ich beschäftige mich schon seit einiger Zeit mit Android, lese mich durch Tutorials, aber irgendwie scheint der Funke nicht überzuspringen!

Ich möchte eine einfache App entwickeln, mit der ich Daten(Kategorien) von einer PHP-Datei vom Webserver (Json-Endcode) bekomme und in einer Listview anzeige. Dazu soll die Kategorie als Text in der Listview erscheinen.
beim Klick auf eine Kategorie möchte ich die ID des geklickten Elements an eine weitere Activity übergeben, (putExtra?), dort wieder auslesen und in der neuen Activity Unterkategorien anzeigen (als Listview). Hier kann wieder eine Kategorie gewählt werden. Anhand dieser Auswahl wird dann eine 3te PHP augerufen, die Ergebnisse dieser Kategorie liefert (mit Bildern), wieder als Liste. Zuguterletzt möchte ich nun Beim Klick auf ein Ergebnis-Item die Detailansicht öffnen um mehr Bilder und Detaildaten anzuzeigen.

Bei der Suche bin ich auf Listview,SimpleCursorAdapter,ArrayAdapter und alles mögliche gestossen, irgendwie kann ich aber nicht herausfinden, wie man so eine App am Besten aufbaut.

Eigentlich bin ich es gewohnt, z.B. eine Listview zu füllen und einen Key zum Elemnt zu definieren, beim Klick weiß man dann welche ID zum geklickten Elemnt gehört, bei Android scheint das wichtigste der Adpater zu sein, aber irgendwie behirn ich das System nicht ganz.

Wäre echt super, wenn mir jemand weiterhelfen könnte und mir hier den nötigen Denkanstoss geben könnte...

Vielen dank schonmal
 
naja bau dir einfach ein paar objekte die du mit daten füllst

diese objekte schmeißt du dann in einen custom adapter, der die listview füllt.

dann hast du alles was du brauchst
 
Hallo Swordi,

Danke für deine Antwort. Genau daran scheitert es ja, da ich fürchte ich den Zusammenhang des Konzepts nicht ganz durschaut hab.

Wenn ich das richtig verstehe dann binde ich irgendeinen Adpater (egal welcher Form) an die Listview, aber nur um die Daten darzustellen?

Die daten selber mit denen ich arbeite sind in einem Container (Adapter,Array oder wie auch immer)?

Vom geklickten Element bekomme ich ja nur die Position oder? Wie weiß ich dann, welches Element im Adapter das zugehörige ist?

Irgendwo hab ich vom SimpleCusorAdapter und einer _id gelesen, ist diese ID nur eine interne ID vom Adapter oder ist das eine zwingende eindeutige ID die ich zur Verfügung stellen muss beim "paste" der Daten in den Adapter??

lg
Peter
 
Der Adapter merkt sich die Daten die er an die Listview oder Gridview liefert üblicherweise in einem Array oder Liste oder einem anderen Container der irgendwie indizierbar ist.
Wenn die Listview Daten will um eine Listenspalte zu füllen frägt sie beim Adapter die Methode getView() ab. Hier übergibt sie die Position der Listenspalte die gefüllt werden soll. Sinnigerweise ist diese Position der Listenspalte normalerweise in Übereinstimmung mit dem Index im Container den der Adapter benutzt um seine Datenelemente zu speichern.
Der Adapter baut dann in seiner getView() Methode eine View zusammen die Daten aus seinem Array/List/etc[position] enthält und gibt diese view zurück an die Listview die angefragt hat.
Das was der Adapter als view zurückgeliefert hat baut die Listview ganz einfach dann an die Spaltenposition ein, die sie angefragt hat.
Der SimpleCursorAdapter ist ein Spezialfall eines Adapters wie auch z.B der ArrayAdapter.
Der Cursor Adapter ist dazu gedacht Daten direkt aus einem Cursor in einer Liste darzustellen. Der Cursor kann z.B aus einer Datenbank oder einem Content Provider kommen.
 
Hallo, danke schon mal für die Antworten.

Um diesen Index muss ich mich aber nicht kümmern, wenn ich ein Array befülle dann hab ich ja automatisch einen Index und diesen Index verwendet dann auch die Listview automatisch?

So wie ich das verstehe muss ich mir aber in meinem Fall (für die Kategorien) keinen eigenen Adapter bauen, sondern kann ruhig den ArrayAdapter/Simplecurosr-Adapter verwenden oder? Der sollte das alles können. Und wenn ich einen eigenen Listview-Style haben möchte so generiere ich eine xml mit dem Style, benenne die Felder und binde dann den Adapter an diese einzelnen felder in einer schleife?

Mit eigener Listview kann ich die Klasse von Activity ableiten, wenn ich eine vorgefertigte Listview verwenden will dann muss ich das von ListActivity ableiten oder??

lg
 
ob du jetzt activity oder listactivity nimmst ist im prinzip egal.
 
Naja wenn ich eine bereits vorgefertigte Klasse verwende dann muss ich schon von Listactivity ableiten oder?

Nur wenn ich selber was baue bringt die Ableitung von Listactivity nichts, weil ich das Listview-Element (die Row) eh selbst gebaut hab (xml)?

Oder versteh ich da was falsch?

P.S.: Ihr seid schnell!!! :)
 
nein das hat damit nichts zu tun.

du kannst genauso eine acitivty als base nehmen.

dort eine listview reinladen, dieser listview einen adapter geben und die klicks abfangen. die listactivity stellt dir diese methoden halt selbst zur verfügung.

Wenn du weißt, dass diese Acitvity hauptsächlich die liste verarbeiten wird, dann nimm einfach eine listactivity als basis und gut ist ... :D
 

Ähnliche Themen

B
Antworten
0
Aufrufe
793
basementmedia
B
H
Antworten
7
Aufrufe
1.696
haner
H
S
Antworten
2
Aufrufe
1.114
SlayNox
S
Zurück
Oben Unten