SpinnerAdapter mehr als ein Attribut

  • 2 Antworten
  • Neuester Beitrag
Diskutiere SpinnerAdapter mehr als ein Attribut im Android App Entwicklung im Bereich Betriebssysteme & Apps.
T

TheSlowlySnail

Neues Mitglied
Hallo,
ich schau mir gerade Android anhand eines eigenen Projektes an. Ich erklär mal ganz kurz mein Problem und dann kurz um was es im Projekt geht.

Ich möchte aus einer ArrayList die Strings in einem Spinner anzeigen. Soweit habe ich schon einige Tutorials gefunden und alle arbeiten mit dem ArrayAdapter und diesen soll man mit setAdapter dem spinner hinzufügen. Aber Android meint, er möchte kein Array Adapter. Er möchte einen SpinnerAdapter.

So sieht es mit dem Array Adapter aus, mit dem es aber Probleme gibt.

ArrayAdapter<String> orteadapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_dropdown_item,ortnamen);
orteadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

mit dem SpinnerAdapter weis ich erlich gesagt nicht so ganz wie ich mit umgehen soll. Die Doku half mir recht wenig: SpinnerAdapter | Android Developers

Mein Plan ist das wenn ich aus einer Liste mit Ortsnamen einen wähle, er über eine Rest URL per ID das passende Objekt zieht. In HTML/JavaScript ist das recht einfach. Was ich möchte das dort Musterstadt steht und er beim wählen (oder absenden) die URL mit der dazu passenden URL abruft.

URL und Ortsname habe ich. Ich möchte die zwei nur in einem spinner zusammen bringen. Vorne steht Musterstadt und die URL 123.456.78.90/id/123 wird aufgerufen.

Zu meiner Idee und umsetzung:
Ich möchte einen MüllReminer für mein kleines Dörfchen schreiben und habe mich entschieden das ich die Nachbarorte aus mit an Board nehmen möchte.

Wie gehe ich vor:
Ich hab einen Hochschul Server. Das ist ein Debian. Da läuft ne Mongo und ein Tomcat 7 drauf. Ein paar Rest-Schnittstellen geschrieben und ich bekomm auch meine Objekte. Ein Object besteht aus einer eindeutigen ID, dem Ortsnamen, der PLZ, der Mülleimer (welche selbst ein Objekt sind) mit ihrem Namen (Bsp. gelb oder bio), den Abholdaten und einer Version für Aktualisierungen beim Jahreswechsel.

Erst hohl ich mir alle Objekte (ist bei der kleinen Anzahl noch sehr überschaubar). Von diesen speicher ich alle Ortsnamen in eine Liste. Das mach ich auch mit den ID's. Sollte ja die gleiche Reihenfolge sein (aber evtl. lege ich hierfür noch ein eigenes Objekt an). Jetzt kommt mein Problem das anhängen der Namen und der ID an einen Spinner. Ist das geschehen sollen die mülldaten zum gewählten Ort in eine SQlite eingetragen werden, damit diese Daten Offline verfügbar sind und keine ständige Online Verbindung nötig ist. Der Ort wird in eine Config Tabelle gespeichert. Wie auch eine Uhrzeit bei welche er am vortag benachrichtigt werden möchte den Müll vor die Tür zu stellen.

Ich bin für hilfe sehr dankbar. Und wenn noch was unklar ist, einfach fragen. Aber denkt dran, ich lerne auch noch an diesem Projekt :)
 
swa00

swa00

Moderator
Teammitglied
Hallo Slowly,

willkommen im Forum ,
Für einen Newbie in Sachen Entwicklung unter Android ein recht sportliches Vorhaben :)

Zu 1)
Irgendwas machst du falsch , denn ein ArrayAdapter funktioniert - der Fehler liegt bei dir irgendwo anders , was ich nicht einsehen kann.

ArrayAdapter arrayAdapter = new ArrayAdapter<String>(getActivity(), R.layout.myspinner);
arrayAdapter.add("Montagsmüll - Plastik");
arrayAdapter.add("Dienstagsmülll - Bio");
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mySpinner.setAdapter(arrayAdapter);
Wenn du allerdings nicht nur Strings , sondern "Datensätze" verwalten willst , dann musst du einen
CustomAdapter bauen und diesem eine Arraystuktur übergeben
Custom Spinner Tutorial With Examples In Android Studio

Stichwort : BaseAdapter


Zu 2)

Du schreibst zwar :
Jetzt kommt mein Problem das anhängen der Namen und der ID an einen Spinner. Ist das geschehen sollen die mülldaten zum gewählten Ort in eine SQlite eingetragen werden, damit diese Daten Offline verfügbar sind und keine ständige Online Verbindung nötig ist. Der Ort wird in eine Config Tabelle gespeichert. Wie auch eine Uhrzeit bei welche er am vortag benachrichtigt werden möchte den Müll vor die Tür zu stellen.
Aber wo ist denn das Problem ? :) - Meintest du das "Mehrdimensionale" (s.o.) ?

lg
Stefan
 
Zuletzt bearbeitet:
T

TheSlowlySnail

Neues Mitglied
Hallo,
kam jetzt endlich zum ausprobieren und vielen Dank für den Tipp. Das hat mir sehr weitergeholfen. Ich hab jetzt meine Liste und bekomme immer das passende Objekt. Mit ID, Name & Co.

Ich hab es mir irgendwie Angewöhnt Problem zu sagen. Hat schon mein Prof. gemacht. Denn die Informatik ist da um Probleme zu lösen :D.

Und mein Aktuelles "Problem" ist das ist ein Objekt möchte das nichts tut, außer das dort "Bitte wählen" steht. Aber ich glaube nicht das es ein Problem bei der Umsetzung sein wird :D.

Nochmals vielen vielen Dank.