Spinner: Suche elegantere Lösung

  • Antworten:0
Mac Systems
  • Forum-Beiträge: 1.727

22.06.2009, 20:39:43 via Website

In meinen Projekt finde Ich einige stellen unschön, was wohl aus meinen gerade mal drei Wochen Erfahrung auf der Android Plattform resultiert.

Folgendes Problem:

Ich habe einen Spinner und der User kann über den Preferences Mechanismus seinen default Wert wählen.
Um diesen in der GUI nun vorzuwählen sehe Ich momentan nur die Methode:

1Spinner#setSelection(int)


Die Objekte die im Spinner bzw. Adapter liegen können ungeordnet sein, daher habe ich jedem Object eine ID verpasst muss allerdings immer erst mühsam raus finden an welcher Stelle sich das gesuchte in der Collection befindet.

Das sieht dann in etwa so aus:

1final SharedPreferences pref = Util.getPreferences(SpotSelection.this);
2final String continentID = Util.getSelectedContinentID(pref);
3final int index = IdentityUtil.indexOf(continentID, continents);
4spinner.setSelection(index);


Util und IdentityUtil sind Hilfsklassen die das erledigen. Das sind immer noch 3 Zeilen Code die sich mehr oder weniger immer wieder gleichen um einen Index zu bekommen. Allerdings wäre es schön eine direkte Methode in den Spinner oder Adapter Klassen zu haben die folgende Signatur haben:

1Spinner#setSelection(E e)


Leider sehe Ich so was nicht, daher die Frage wie man das besser lösen könnte ?

Ich glaube mein Hauptproblem ist das Ich die Adapter Klassen bisher nicht so ganz verstehe, leider fand Ich bis jetzt keinen geeigneten Hinweis in solch einer Richtung. Die Adapter Klassen arbeiten mit Generics was Ich schon toll finde aber wieso erlaubt der Spinner nur einen Index zur Auswahl?

thx,
mac

— geändert am 22.06.2009, 20:48:07

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten