Position in einem Spinner / StringArray bestimmen

  • Hallo zusammen!


    Ich suche schon seit Stunden nach der Lösung für eine eigentlich recht einfache Frage.
    Vielleicht könnt ihr mir ja helfen.


    Ich habe einen Spinner, der über einen Array gefüllt wird, das in einer xml-Datei definiert wurde:


    Java
    <string-array name="entfernungen">
       <item>15m</item>
       <item>18m</item>
       <item>30m</item>
       <item>40m</item>
       <item>50m</item>
       <item>60m</item>
       <item>70m</item>
       <item>90m</item>
    </string-array>


    Beim Verlassen der App speichere ich den gewählten Wert im Klartext in einer Datenbank ab:


    Java
    @Override
    protected void onPause() {
    
    
       Spinner sp = (Spinner) findViewById(R.id.sp_entfernung);
       String[] bases = getResources().getStringArray(R.array.entfernungen);
       String entfernung= bases[sp.getSelectedItemPosition()];
       speichern(entfernung);
       }


    Beim Start der App (Methode onResume()) möchte ich den Spinner auf den zuvor gewählten Wert setzen.
    Dazu lese ich den gespeicherten Wert aus der Datenbank (z.B. "30m").
    Nun müsste ich die Position dieses Wertes in dem Array wissen.
    Aber wie "übersetze" ich den String "30m" in die Position 2?


    Leider ist es mir nicht möglich, die Position des gewählten Spinnereintrages in der Datenbank abzuspeichern, da sich das Array durch ein Upgrade der App verändert haben könnte, so dass die gespeicherte Position nicht mehr stimmen könnte.


    Ich hoffe, ich habe mich klar genug ausgedrückt und ihr könnt mir weiterhelfen.


    Viele Grüße,
    Grossi

  • Hi,


    nachdem zwei Tage keine Antwort gekommen ist, versuch ichs mal auf gut Glück mit zwei ungetesteten Ansätzen :


    int pos = ((ArrayAdapter) mySpinner.getAdapter()).getPosition(suchString);
    if (pos>=0) sp.setSelection(i);


    oder


    public void setSpinnerPosToString (Spinner sp, String s) {
    int i;
    for (i=0;i<sp.getCount();i++{
    if ((String)sp.getItemAtPosition(i).equals(s)) {
    sp.setSelection(i);
    return;
    }
    }
    }

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!