1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Problem mit ListView und SQLite Datenbank

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von praesi09, 17.01.2012.

  1. praesi09, 17.01.2012 #1
    praesi09

    praesi09 Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    17.01.2012
    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.
     
  2. Micka, 18.01.2012 #2
    Micka

    Micka Erfahrener Benutzer

    Beiträge:
    173
    Erhaltene Danke:
    1
    Registriert seit:
    30.12.2011
    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.
     

Diese Seite empfehlen