1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen 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
[ERLEDIGT] Spinner feste double Werte zuordnen Android App Entwicklung 24.04.2017
Problematik mit der Ausgabe von SQL Inhalten (ljava.lang) Android App Entwicklung 23.11.2016
SpinnerAdapter mehr als ein Attribut Android App Entwicklung 23.09.2016
Wie erstelle ich einen Spinner richtig? Da die Anleitung von developer.android.com zu keinem Ergebnis führt Android App Entwicklung 21.07.2016
Du betrachtest das Thema "Spinner mit simplecursoradapter" im Forum "Android App Entwicklung",