ListView aktualisieren

0

0xnull

Neues Mitglied
0
Hallo,

nachdem ich meine Datenbank geändert habe, aktualisiert sich meine ListView nicht sofort. Ich muss erst die Activity neu starten, damit alle Einträge korrekt dargestellt werden.

Leider finde ich meinen Fehler nicht:


Code:
public class Foo extends Activity {

    private ListView listView;
    private SimpleCursorAdapter adapter;
    
    public void onCreate(Bundle savedInstanceState) {
        //...
        
      saveButton.setOnClickListener(new OnClickListener() {
                    
            public void onClick(View v) {
                save(); // neuen Eintrag bei Buttonklick in der DB speichern
            }
        });
        
        fillData(); // alle aktuellen Einträge anzeigen

    }
    
    private void fillData() {
        String[] projection = {Table.COLUMN_ID, A.COLUMN_A};
        String[] from = {A.COLUMN_A};
        int[] to = {R.id.tx_a_entry};;
        Cursor cursor = getContentResolver().query(MyContentProvider.CONTENT_URI_A, projection, null,  null,  null);
        
        if(cursor.getCount() == 0) {            
        }
        else {
            adapter = new SimpleCursorAdapter(this, R.layout.a_row, cursor, from, to, 0);
            listView.setAdapter(adapter);                        
        }
        
    }
    
    private void save() {
        String str = ((EditText) findViewById(R.id.ed_enter_a)).getText().toString();
        ContentValues values = new ContentValues();
        values.put(Table.COLUMN_A, str);
        
        getContentResolver().insert(MyContentProvider.CONTENT_URI_A, values);
        adapter.notifyDataSetChanged(); // funktioniert nicht. Warum?

    }
    
    
}
Sieht jemand den Fehler?

Vielen Dank
 
ich vermute mal der adapter weiß nicht, dass sich etwas geändert hat, somit wird notifydatasetchanged nichts bewirken.

vermute mal du musst den cursor updaten
 

Ähnliche Themen

A
Antworten
10
Aufrufe
1.034
swa00
swa00
D
Antworten
9
Aufrufe
1.787
jogimuc
J
4
  • 469110
Antworten
0
Aufrufe
980
469110
4
Zurück
Oben Unten