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

    pieradnHero Threadstarter Neuer Benutzer

    Hi,

    ich bin blutiger Anfänger was Programmieren und insbesondere Android-Programmierung betrifft. Habe durch viel Lesen, probieren usw. schon einiges zum laufen gebracht. Nur leider hänge ich nun seit Tagen an einem Problem und weis einfach nicht mehr weiter.

    Und zwar habe ich eine Datenbank mit mehreren Spalten. Diese Datenbank möchte ich in einer Liste ausgeben. Hierzu habe ich ein Layout mit einer ListView und ein Layout für die Zeilen in der ListView erstellt. Das Zeilen Layout enthält eine Checkbox und zwei Textview.

    Nach ewigem rumprobieren habe ich es endlich geschafft das meine Datenbankeinträge in der Liste korrekt angezeigt werden.
    Hierzu verwende ich folgenden Code:

    PHP:
    Cursor c datenbank.rawQuery("SELECT _id, name, sort FROM " database_table ";"null);
    startManagingCursor(c);
            
            
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
    R.layout.list_row,c,new String[] { "_id""name""sort" }, new int[] { 
    R.id.ListRowText1R.id.ListRowText2 });
            

            
    adapter.setViewBinder(new ViewBinder() {
                @
    Override
                
    public boolean setViewValue(View viewCursor theCursorint columnname) {
                        switch(
    view.getId()) {
                        case 
    R.id.ListRowText1:
                            final 
    String ColumnName theCursor.getString(1);
                            ((
    TextView)view).setText(ColumnName);
                            return 
    true;
                        case 
    R.id.ListRowText2:
                            final 
    String ColumnAge theCursor.getString(2);
                            ((
    TextView)view).setText(ColumnAge);
                            return 
    true;
                        }
                    
                return 
    false;
                }
                
            });
            
    setListAdapter(adapter);
    Das funktioniert wie gesagt super. Nun sieht mein Zeilenlayout folgendermaßen aus: Checkbox - Textview - Textview.
    Beide Textviews werden durch den obigen Code erfolgreich "gefüllt".

    Mein Problem ist nun, wie schaffe ich es, das wenn ich die Checkbox anklicke, eine Aktion ausgeführt wird.
    Gedacht habe ich mir, das beim checken der Checkbox automatisch die Zahl 1 in meine Datenbankspalte Status geschrieben wird. Wird die Checkbox ungecheckt wird 0 reingeschrieben.

    Habe bereits sehr viele Tutorials durchgesucht allerdings war nie was passendes dabei. Alle Beispiele die mein Problem behandeln, waren mit Arrays anstatt mit einer Datenbank oder nicht passend genug. Kennt einer ein Tutorial oder kann mir ein Codebeispiel schreiben wie ich mein Problem am besten Lösen kann? Bitte so einfach wie möglich erklären, da ich ganz neu im Bereich Programmieren bin :)

    Vielen Dank schonmal für eure Hilfe

    Gruß
     
  2. Tom299, 17.11.2011 #2
    Tom299

    Tom299 Android-Experte

    Also ich persönlich ziehe es vor, eine eigene Adapter-Klasse zu schreiben, welche ich von ArrayAdapter ableite.

    Darin wird getView() überschrieben, um die entsprechenden Views mit Daten zu füllen (in deinem Fall die CheckBox und die beiden TextViews). Auch kann man hier Listener registrieren, wie z.B. ein OnFocusChange auf nen EditText oder in deinem Fall ein OnCheckedChangeListener auf die CheckBox und entsprechend darauf reagieren.

    Die Daten lese ich dann vom Cursor in eine ArrayList, kann den Cursor schließen und hab alle Daten immer in meiner ArrayList verfügbar.

    Zu meinem Array-Adapter erstelle ich mir immer noch eine Datenklasse, die ich übergebe. Somit kann ich immer auf meine Methoden zugreifen, um Werte zu lesen oder zu speichern.

    Alles in allem recht einfach, wenn man es ein paar mal gemacht hat :smile:
     
  3. pieradnHero, 17.11.2011 #3
    pieradnHero

    pieradnHero Threadstarter Neuer Benutzer

    Gibts da evtl. ein gutes Tutorial oder ein Beispiel was dieses Adapter selber schreiben erklärt?

    Hab schon öfters gelesen das man mit einer eigenen Adapterklasse mehr erfolg hat, nur leider sind dafür meine Kenntnisse wohl noch etwas zu wenig :)
     
  4. swordi, 17.11.2011 #4
    swordi

    swordi Gewerbliches Mitglied

    einfach bei google nach custom adapter suchen. dazu gibts genug
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Keine doppelten Einträge in die Firebase Datenbank Android App Entwicklung 27.10.2017
[OFFEN] Übereinstimmung Spracherkennung Datenbank finden Android App Entwicklung 13.10.2017
[OFFEN] Komplette SQLite Datenbank verschlüsseln Android App Entwicklung 19.09.2017
[GESCHLOSSEN] Random ListItem ausgeben funktioniert nicht mehr Android App Entwicklung 13.08.2017
[OFFEN] Bild per Intent an ListView übergeben und anzeigen Android App Entwicklung 13.08.2017
[OFFEN] Updateinstallation: Trotzdem Datenbank gelöscht Android App Entwicklung 12.05.2017
[ERLEDIGT] Listview mit Datenbank über Custom ArrayList verbinden Android App Entwicklung 22.04.2017
[ERLEDIGT] Datenbank in eine Cloud sichern (Backup) Android App Entwicklung 29.03.2017
[ERLEDIGT] Drawer mit scrollbarem Listview Android App Entwicklung 27.03.2017
Wie bekomme ich Map Markers von einer SQL Datenbank Android App Entwicklung 11.03.2017

Benutzer fanden diese Seite durch die Suche nach:

  1. android layout listview mit checkbox

Du betrachtest das Thema "Datenbank Listview mit Checkbox" im Forum "Android App Entwicklung",