1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Gingerbread, 02.03.2011 #1
    Gingerbread

    Gingerbread Threadstarter Android-Hilfe.de Mitglied

    Mein Spinner zeigt Elemente aus einer Datenbank an. Das funktioniert auch mit folgendem Code ganz gut:
    Code:
    SimpleCursorAdapter spinadapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, mySpinnCursor, new String[] {"name", "_id"}, new int[]{ android.R.id.text1});
    	        
    	        spinadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    	        
    	        
    	        Spinner artikel = (Spinner)findViewById(R.id.au_artikel);
    	        artikel.setAdapter(spinadapter);
    Es werden new String[] {"name", "_id"} in den Spinner eingefügt und "name" wird angezeigt. Wie kann ich jetzt einen onClickListener implementieren, welcher mir die dazugehörige "_id" ausgibt?
     
  2. maniac103, 03.03.2011 #2
    maniac103

    maniac103 Android-Lexikon

    Die Signatur des OnItemClickListeners ist ja die:
    Code:
    public abstract void onItemClick (AdapterView<?> parent, View view, int position, long id)
    
    position ist die Position im Array (0..size), und id dürfte der Wert von _id sein.
     
  3. Gingerbread, 03.03.2011 #3
    Gingerbread

    Gingerbread Threadstarter Android-Hilfe.de Mitglied

    Ich merke gerade, dass ich ja bei einem Spinner einen OnItemSelectedListener verwenden muss. Aber dieser hat ja die gleiche Syntax.

    Ich bekomme es ja wohl auch hin die "position" des gewählten Elements zu bekommen.
    Aber position ist ja nicht gleich _id aus der Datenbank. Die Elemente aus der Datenbank können beliebige ids haben.

    Ich würde jetzt das _id Feld nochmal aus der Datenbank auslesen und dies in einen Array speichern. Dann würde ich mir mittels array[position] die geforderte _id ausgeben lassen.

    Aber kann ich dies nicht irgendwie sofort machen? Ich habe die _id ja eigentlich schon ausgelesen.
     
  4. maniac103, 03.03.2011 #4
    maniac103

    maniac103 Android-Lexikon

    Ja klar, aber was genau ist das Problem? Nimm doch einfach den Wert, der dir übergeben wird, wie oben schon geschrieben:

    public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
    parent - das ist der Spinner
    view - das ist der selektierte Eintrag
    position - das ist der Index des Eintrags (0-basierend)
    id - das ist der Wert der Spalte _id, die zum Eintrag gehört

    Ich hab das auch grad nochmal mit einem ListView und einem OnItemClickListener probiert, das funktioniert definitiv.
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Loading Spinner Android App Entwicklung 12.11.2017
[OFFEN] WebView Loading Spinner Android App Entwicklung 08.11.2017
[ERLEDIGT] Spinner feste double Werte zuordnen Android App Entwicklung 24.04.2017
Du betrachtest das Thema "Spinner mit simplecursoradapter" im Forum "Android App Entwicklung",