Problem mit ListView und SQLite Datenbank

P

praesi09

Neues Mitglied
0
Hey Leute,

ich versuche gerade aus einer Datenbank die Daten in einem ListView darzustellen. Das funktioniert auch schon ganz gut. Im Allgemeinen geht es darum, dass Namen von Galerien ausgelesen und angezeigt werden. Bei einem Klick auf die Galerie (habe dazu onClickListener verwendet) soll die GalerieID (steht auch in der DB und wird mit ausgelesen) einer anderen Activity übergeben werden.


Code:
private void ladeDaten() {
            Cursor klassenCursor = mDatenbank.query(
                    "galerie",            // Tabellenname
                    new String[] {         // anzuzeigende Spalten
                            "_id",
                            "name",
                            "galid"
                    }, 
                    "galid=(SELECT galerieid from kundegalerie where kundenid=="+userid+")",               
                    null,               
                    null,                 
                    null,                
                    "name"               
                );
            startManagingCursor(klassenCursor);
            
            SimpleCursorAdapter klassenAdapter =
                new SimpleCursorAdapter(this, 
                        android.R.layout.simple_list_item_2, 
                        klassenCursor, 
                        new String[] {"_id"},
                        new int[] {
                            android.R.id.text1
                        }
                );
            klassenAdapter.setViewBinder(new ViewBinder() {
                
                public boolean setViewValue(View view, Cursor theCursor, int column) {
                   
                    String Galeriename = theCursor.getString(1); //Name
                    putextra = theCursor.getString(2); //GALERIEID
                   
                    ((TextView)view).setText(Galeriename);
                    
                     
                     view.setOnClickListener(new View.OnClickListener() {
                        public void onClick(View v){
                            Intent in = new Intent(Galerie.this,Galerie2.class);
                            in.putExtra("galid", putextra);
                            startActivity(in);
                        }
                    });

                    return true;
                }
            });
            
            

            
            setListAdapter(klassenAdapter);
        }

wenn nur eine Galerie vorhanden ist, dann funktioniert das auch schon ganz gut. Werden allerdings 2 oder mehr Galerien angezeigt und man klickt nicht auf die letzte, dann wird die falsche ID (nämlich die von der letzten angezeigte Galerie, also vom letzten ausgelesenen Datensatz) übergeben.

Wie könnte ich denn das Problem lösen. Habe schon ein paar Dinge versucht, doch leider bekomme ich keine ordentliche Lösung hierfür.

Könnt ihr mir hier ein paar Tipps geben? Wäre super.
 
Schonmal an ein Contextmenu gedacht? Damit gehts auch zoemlich einfach. Ich hab hier in App Entwicklung auch ein Post NullPointerException...an einem meiner Beiträge hängt mein gesamtes Projekt. In der EinträgeAnzeigenActivity hab ich gleiches wie du versuchst über ein ContextMenu gelöst. Vielleicht hilft dir das ja weiter.
 

Ähnliche Themen

R
Antworten
6
Aufrufe
994
swa00
swa00
S
Antworten
33
Aufrufe
2.655
Sempervivum
S
A
Antworten
10
Aufrufe
1.017
swa00
swa00
Zurück
Oben Unten