2010-12-11 7 views
5

Ich habe eine einfache Spinner Bindung an eine SimpleCursorAdapter erstellt. Ich bevölkere die SimpleCursorAdapter mit einer Liste von Städten von einem Inhaltsanbieter.Wie Spinner Auswahl von ID nicht Position

Wenn ich gehe, um die Benutzerauswahl zu speichern, plane ich, die Zeilen-ID zu speichern, die in meinem SimpleCursorAdapter ausgefüllt wird.

Ich verwende den folgenden Code, um die ID zu erhalten.

Was ich nicht herausfinden kann ist, wie man am besten die Auswahl einstellt, wenn ich den gespeicherten Gegenstand zurück ziehe.

Der folgende Code funktioniert, aber nur die Auswahl nach Positionsnummer.

townSpinner.setSelection(2); 

Sollte ich nur eine Schleife erstellen, um den richtigen Positionswert basierend auf ID zu ermitteln?

+0

Welche anderen Daten (falls vorhanden) mit Städten verbunden sind, und würde die Liste der Städte wahrscheinlich jederzeit ändern? – Squonk

+0

Die Liste der Städte könnte sich ändern. Ich könnte auch Staaten in der gleichen Tabelle haben. – zachariahyoung

Antwort

2

Ich denke, Sie haben Ihre eigene Frage dort beantwortet! einfach Ihre eigene setSelectionByItemId Methode schreiben Sie den Code verwenden Sie

geschrieben
0

Beispiel:

DB: 
    public Cursor getData() { 
     SQLiteDatabase db = getReadableDatabase(); 
     String sql = "select ID _id, Name from MyTable order by Name "; 
     Cursor c = db.rawQuery(sql, null); 
     c.moveToFirst(); 
     return c; 
    } 

Activity: 

     Cursor myCursor = db.getData(); 

     SimpleCursorAdapter adapter1 = new SimpleCursorAdapter(
      this, 
      android.R.layout.simple_spinner_item, 
      myCursor, 
      new String[] { "Name" }, new int[] { android.R.id.text1 }, 0); 

     adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

     mySpinner.setAdapter(adapter1);   

     for(int i = 0; i < adapter1.getCount(); i++) 
     { 
      if (adapter1.getItemId(i) == myID) 
      { 
       mySpinner.setSelection(i, false); //(false is optional) 
       break; 
      } 
     } 
Verwandte Themen