Spinner-problem

Z

zumafx

Fortgeschrittenes Mitglied
58
Moin :)
Ich bin am "feintunen" meiner App und hab da ein Problem mit einem Spinner, das ich einfach nicht hinbekomme.
Der Spinner zeigt eine Auswahl von Werten im Bereich von -10 bis +10 an.
Der Eintrag 0 ist vorselektiert. Soweit alles gut.
Leider wird aber bei antippen die 0 als oberster Eintrag auf der Liste angezeigt,
somit ist es erstmal schwierig für den User zu erkennen, das es "oberhalb" noch die positiven Werte gibt.
Nun würde ich gerne bei 0 selektiert haben, aber z.B. +4 als obersten Eintrag anzeigen (sozusagen den Listeneintrag 0 "mittig" anzeigen).
Wie gesagt, ich krieg es einfach nicht hin. Ob mir einer auf die Sprünge helfen mag/kann ? oder geht das gar nicht ?

lg
zumafx
 
Warum sortiert du die Liste denn so das die 0 oben ist?
Benutzt du eine array list?
 
nein, die ist nicht so sortiert, das die 0 oben ist, sondern mittig.
und ja, ich benutze eine arraylist:
Code:
10
9
...
0
...
-9
-10
es wird immer der (vor-)selektierte Eintrag oben angezeigt.
 
Das ist doch komisch dann. ...möchtest du dein Code Posten damit man sich das mal anschauen kann denn da geht wohl was schief
 
Hallo Jaiel :)
klar, kann ich den Code zeigen

in der Activity im oncreate()
Code:
Spinner spinStimm = (Spinner) findViewById(R.id.spinner);
    adapt = ArrayAdapter.createFromResource(this,
                R.array.Stimmung_array,
                android.R.layout.simple_spinner_item);
    adapt.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinStimm.setAdapter(adapt);
    spinStimm.setSelection(adapt.getPosition("0"));

im XML-Layout
Code:
<Spinner
    android:id="@+id/spinner"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_gravity="right"/>

und in der strings-resource

Code:
<string-array name="Stimmung_array">
        <item>10</item>
        <item>9</item>
        <item>8</item>
        <item>7</item>
        <item>6</item>
        <item>5</item>
        <item>4</item>
        <item>3</item>
        <item>2</item>
        <item>1</item>
        <item>0</item>
        <item>-1</item>
        <item>-2</item>
        <item>-3</item>
        <item>-4</item>
        <item>-5</item>
        <item>-6</item>
        <item>-7</item>
        <item>-8</item>
        <item>-9</item>
        <item>-10</item>
    </string-array>

setze ich im oncreate() z.B.
Code:
spinStimm.setSelection(adapt.getPosition("2"));
ist eben die 2 beim aufklappen ganz oben. Aber dann ist das "falsch" vorbelegt, da default die "0" sein soll.

danke fürs "mitdenken"
 
Also verschiebt je nachdem welche zahl selected ist die liste die Selektion nach oben und man muss hpchscrollen um z.b. bei 0 die zahlen1-10 zu s3hen?

Das ist irgendwie ein ganz blödes Feature

Ich kenne das vom Datei Manager von Android da zeigt er haargenau dasselbe verhalten...klicke ein Ordner an gehe wieder raus und bin verwirrt wieso sich alles verschoben hat nach oben. ..Gibt es in der Spinner klasse keine Methoden die das Handeln?
 
Jaiel schrieb:
Also verschiebt je nachdem welche zahl selected ist die liste die Selektion nach oben und man muss hpchscrollen um z.b. bei 0 die zahlen1-10 zu s3hen?

genau so siehts aus

Jaiel schrieb:
Das ist irgendwie ein ganz blödes Feature

finde ich auch

Jaiel schrieb:
Gibt es in der Spinner klasse keine Methoden die das Handeln?

ich hab keine gefunden, deswegen hab ich ja hier gefragt ;)

lg
 
würde folgender workaround klappen?

wenn der user den spinner anklickt um ihn zu ändern wählt dein code ganz schnell die 10 aus nur um dann wieder zum ricvhtigen ausgewählten zu switchen...jedoch muss das so gemacht werden dass es nciht auffällt der grund für dieses verhalten...android soll denken dass die 10 ausgewählt ist dadurch positioniert er die 10 ja ganz oben aber in wirklich keit ist sie ja nciht ausgewählt



obwohl das sehr blöd ist und evtl nciht klappen könnte muss es einen besseren weg geben
 

Ähnliche Themen

W
  • WuDiDong
Antworten
3
Aufrufe
755
jogimuc
J
S
Antworten
4
Aufrufe
954
Sempervivum
S
R
Antworten
3
Aufrufe
1.571
Ritartet
R
Zurück
Oben Unten