Beiträge von Funtik

    Das heißt deine update Methode bekommt schon die alten Daten. Also kann sich auch nichts ändern.
    rowsUpdatet steht 0, aber darum kümmern wir uns dann später.


    Magst du mal schritt für schritt Screens machen, also öffnen der Liste und öffnen des AlertDialogs..


    Ist es der selbe Dialog, mit dem du auch neue Einträge machst?

    okay gut. Dann weiter... :D


    Wenn du aus der Liste raus gehst, und sie wieder öffnest, sind die Daten immernoch die alten, richtig? (nur damit ich jetzt auf dem richtigen weg gucke)


    Mach mal zum Test folgendes:


    Java
    public void eintragUpdate() { 
            long diesDas = 0;
            diesDas = dbHelper.updateEintraege(new_plus_minus, new_datum, new_betrag, new_notiz, null); 
            Toast.makeText(getApplicationContext(), "rows Updated: " + diesDas + " : " + new_plus_minus + " : " + new_betrag + " : " + new_datum + " : " + new_notiz + ": id=" + idCode, Toast.LENGTH_LONG).show();
           displayListView(); 
              
        }


    Die Toast zeile müsstest du evtl. noch bearbeiten, das war jetzt frei aus der Hand geschrieben.
    Und guck mal ob beim Ausführen im Toast die neuen Daten stehen. Achte darauf, welche Zahlen am Anfang und am Ende des Toasts stehen werden. Beide Zahlen müssen größer als 0 sein..


    edit2: nochmal, da hat nochwas gefehlt. hab die Methode nochmal geändert. (falls du schon probierst)

    Zitat

    die methode displayListView hab ich eigentlich schon gepsotet :/


    Sorry, hab ich grad auch wieder gesehn. da ist aber alles gut. Der zeigt beim ersten mal ja wohl auch richtig an.


    Zwei Dinge fallen mir auf, die vermutlich das Problem sind. Zum einen..


    Java
    public void eintragUpdate() {
            dbHelper.updateEintraege(new_plus_minus, new_datum, new_betrag, new_notiz, null);
    //      displayListView();
              
        }


    Da wo am Ende "null" steht, muss eine ID rein. Damit deine SQLite DB in ihrer updateEintraege(...) Methode weiß in welchem Datensatz er das Update machen soll.
    Hier nochmal die Methode aus der Datenbankklasse:



    rowsupdated = mDb.update(SQLITE_TABLE, contValues, KEY_ID +"="+_id, null);


    das ist das Update. Und er macht das Update nur für den Datensatz, dessen Zeile die ID hat, die in _id drin steht.
    Da du dort keine ID, sondern "nichts" übergibts, wird auch nichts in der Datenbank verändert. (seltsam dass da keine Exception kommt)


    Aber wenn ich das richtig sehe, dann hast du die ID in der Variable idCode schon drin stehn, dass heißt du schreibst statt "null" einfach "idCode" hin
    und in


    Java
    public void eintragUpdate() {
            dbHelper.updateEintraege(new_plus_minus, new_datum, new_betrag, new_notiz, null);
    //      displayListView();
              
        }


    machst du displayListView(); wieder aktiv, also kein Kommentar draus. Dann Probier nochmal.



    ------------------------------------------
    Das eben erklärte musst du auf jeden fal machen.


    Wenn es dann noch nicht läuft, dann überprüf auch in der Klasse LvCursorAdapter...


    Java
    .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
                          
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                                  
                                if (chk_bx.isChecked() == false) 
                                {
                                    eintragUpdate();
                                      
                                } else {



    Könntest du mal einen Haltepunkt bei "eintragUpdate();" setzen und deine App dann mal im Debugging Modus starten und dann testen, ob es überhaupt bis zu diesem Punkt kommt?..


    (Haltepunkt setzt du, indem du links neben der Zeile im Orangenen Bereich doppelklickst, bzw. Rechtsklickst und "Toggle Breakpoint" auswählst.
    Den Debugging Modus startest du mit dem grünen Käfersymbol, genau neben dem Normalen "Play" Button)

    Wo werden die Variablen (new_plus_minus, new_datum, new_betrag, new_notiz,..) definiert, was steht in der Methode displayListView()?
    Und ich glaube es kommt kein Update der Daten zustande, weil


    Java
    dbHelper.updateEintraege(new_plus_minus, new_datum, new_betrag, new_notiz, null);


    keine ID oder sowas bekommt, also keinen Geneuen Ort in der Tabelle bearbeiten kann(?) ... Vermutung



    vielleicht mal versuchen die Klassen als Anhang zu posten, damit man sich mal ein Bild von allem machen kann... ist so etwas schwierig zu verstehen was genau geschieht...

    Um Code hier im Forum richtig einzufügen, musst du nicht auf "schnellantwort" drücken, sondern den richtigen "Antwort" Button drücken, in dem sich öffnenden Editor gibt es oben in der Bearbeitungsleiste ein JavaSymbol (Die Kaffeetasse) da drückst du drauf, es wird [ java] [ /java] in den Textbereich reingeschrieben, und dazwischen kopierst du deinen Code rein. dann wird das so angezeigt


    Java
    private void listeAktualisieren(int filter, Cursor c) {
    		CursorAdapter adapter = null;
    
    
    		// Status anzeigen bzw. ausblenden
    		boolean showStatus = true;
    		if (filter != -1) {
    			showStatus = false;
    		} . . .


    Also zurück zum Thema...


    zeig mal die Stelle, von wo aus deine updateEintraege(...) Methode aufgerufen wird... genau danach muss nämlich der Cursor aktualisiert werden.

    Sorry dass ich so spät antworte... ich bekomme irgendwie keine Benachrichtigungen mehr per Mail.


    Also das Update sieht ok aus.... nachdem du ein Update gemacht hast, musst du die listView ja nicht aktualisieren, sondern nur den cursor.


    ich lade bei mir den cursor in so einem Fall ganz neu, aber du kannst ja mal cursor.requery(); probieren.
    Und zwar nachdem das Update gemacht wurde. um in der updateEintraege Methode zugriff auf deinen cursor zu bekommen, musst du ihn aus der displayListView Methode raus holen, also ihn als Eigenschaft der Klasse definieren (Feldvariable). Sodass jede Methode in der Klasse darauf zugreifen können.


    man... seit wenigen Wochen nichts mehr in Android gemacht und schon kann ich mich nicht ausdrücken :D
    Ich hoffe das hilt dir erstmal so weiter, ich versuche mich jetzt aber nochmal klarer auszudrücken

    Hast du denn auch ein Update statement?
    Wenn du auf dem alertDialog bestätigst, muss der update befehl ja ausgeführt werden... daraufhin muss die listview aktualisiert werden. Bzw. Der cursor der listview.


    Evtl. Ein paar codeschnipsel zeigen, wo du was machst...

    Bleibt dann nur noch die frage, wie "teuer extern" das denn hinbekommt und wo und wie die das gelernt haben...


    würde auch gerne endlich alles mögliche in android programmieren können und auf alles ne antwort wissen :P

    Wie schon gesagt, ein Context Menu bezieht sich auf ein bestimmtes View, bzw. auf die Daten eines View's. (z.B. in einer ListeView) deshalb musst du bei openContextMenu(View view) eine View übergeben, mit der das ContextMenu dann arbeiten kann. Also eine View aus deiner Aktivity, in der Die Daten sind, mit denen du etwas machen möchtest...


    // Edit: Wenn dein ContextMenu unabhängig von einer View sein soll, dann solltest du vielleicht lieber einen Dialog Builder benutzen... Ich hatte bisher nur den AlertDialog Builder genutzt...


    http://developer.android.com/r…/AlertDialog.Builder.html

    bezieht sich ein Contextmenu i.d.R. nicht auf ein bestimmtes View in der Activity?
    Was genau ist denn das ziehl deines Vorgehens, soll bei jedem Punkt im Optionsmenu ein anderes Contextmenu geöffnet werden, oder immer das selbe?

    Ja im Prinzip habt ihr recht, ich wollte einen DB Zugriff sparen. Da ich sowieso einen der 5 Cursor brauche, um ihn in der Liste anzuzeigen, dachte ich hole ich einfach für jeden alle nötigen Daten. auf meinem SGS2 funktioniert das auch ohne verzögerung. Bloß LogCat zeigt mir immer an, das etliche Cursor nicht geschlossen wurden..


    Ich packe die Daten aus den Cursorn auch in keine Bean(keine Ahnung was das ist). Da der Adapter einen Cursor benötigt um die Daten in der Liste darzustellen.

    Hi,..


    Ich habe vergeblich nach einer Einstellung gesucht, dass ich benachrichtigt werde, wenn ich eine PN bekomme, bzw. wenn mir einer auf eine PN antwortet.


    Ich war mal wegen Schule 3 Wochen nicht hier gewesen und dementsprechend hab ich auch nach drei Wochen auf ne PN geantwortet.

    Ich habe eine Liste, die mir aus der DB Daten gefiltert anzeigt. Über der Liste sind die Buttons für die Filter. Bei den Buttons steht die Anzahl der DS, die mit dem Filter vorhanden sind.


    Nach jeder Änderung eines Datensatzes muss also die Anzahl bei den Buttons geändert werden und die Liste aktualisiert werden.
    Deswegen lade ich die 5 Cursor, und jenachdem, welcher Filter grad geklickt wurde, sollen dann die Daten in der Liste angezeigt werden und die Anzahl bei den Buttons muss ebenfalls aktualisiert werden.


    Nach diesem ganzen Vorgang möcht ich alle Cursor schließen, bis auf den, der noch angezeigt werden soll...

    Ich lade 5 Cursor, für alle brauche ich nur die .count(). also die Anzahl der Datensätze. nur einer der 5 Cursor soll in der ListView angezeigt werden, deswegen sollen die anderen 4 geschlossen werden.

    Tschuldigung wenn ich dazu komme... hab eine kurze frage dazu.


    weiß jemand, wie ich einen Cursor nicht als referenz, sondern als kopie in einen anderen Cursor packen kann?


    z.b.


    Cursor cKontakte = resolver.query(.....)
    .
    .
    .


    Cursor cTemp = cKontakte




    in diesem Fall, wenn ich mit cKontakte.close() den einen Cursor schließe, dann ist in cTemp ja auch nichts mehr drin. Ich brauchs aber so, dass ich cKontakte schließen kann, und der Cursor in cTemp drin bleibt... geht das?

    Hey,


    Hat jemand ein bisschen Erfahrung mit KontaktGruppen?


    Ich hab etwas Schwierigkeit mit der Anzeige von Kontaktgruppen ...
    Im Anhang ist ein Bild mit der Anzeige von meinen Kontaktgruppen. Hab da die Doppelten Markiert...


    Da sind Gruppen irgendwie gesplittet. Die Gruppe Jugend gibt es drei mal mit jeweils anderer ID und und anderer Anzahl an Kontakten die da drin sind... ist das normal?
    Wie kann ich eine Liste anzeigen wo jede Gruppe nur einmal drin vorkommt und mit allen Kontakten darin?
    Beim draufdrücken soll dann eine neue Liste angezeigt werden, mit den jeweiligen Kontakten.... das wäre ja kein Problem, wenn es für jede Gruppe auch wirklich nur eine ID gäbe.... hier bin ich aber grad etwas verwirrt :S