Listview не обновляется после обновления базы данных и adapter.notifyDataSetChanged ();

Я уже 2 дня просматривал сеть и много чего пробовал, но могуКажется, я не понимаю, что с этим не так.

Я все еще довольно новичок в разработке Android, поэтому я, вероятно, пропустил что-то очевидное.

У меня есть приложение, которое использует базу данных sqllite для хранения некоторых данных и для этого доказательства концепции, отображающего их в виде списка. Я могу добавлять элементы в список, удалять их.

Все идет нормально. У меня проблема, когда я вместо удаления обновляю столбец в базе данных под названием "удален» и установите его равным 1, а затем установите адаптер для обновления списка. Кажется, не работает.

Если я использую оператор удаления, он работает. Он обновляется, и все в порядке, но я хочу, чтобы удаленные элементы в базе данных, но не показывать их (так в основном "прячется" Предметы)

Если я проверяю базу данных, само обновление завершается успешно после изменения столбца и всего, поэтому я предполагаю, что это проблема обновления, потому что адаптер не запрашивает базу данных или что-то в этом направлении

Загрузчик Listview:

public void fillData() {

    if(lw.getAdapter() == null){
        // Fields from the database (projection)
        // Must include the _id column for the adapter to work
        String[] from = new String[] { TodoTable.COLUMN_SUMMARY, TodoTable.COLUMN_ID};
        String where = TodoTable.COLUMN_DELETED + " = ?";


        Cursor cursor = getContentResolver().query(TodoContentProvider.CONTENT_URI,from,where,new String[] {"0"},null);
        // Fields on the UI to which we map
        int[] to = new int[] { R.id.label };

        adapter = new SimpleCursorAdapter(this, R.layout.todo_row, cursor, from,
                to, 0);
        Log.v("Count",Integer.toString(cursor.getCount()));
        lw.setAdapter(adapter);
    }
    else
        adapter.notifyDataSetChanged();
    }

Удалить функцию

@Override
public boolean onContextItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case DELETE_ID:
            /* Code for actual delete
            AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item
                    .getMenuInfo();
            Uri uri = Uri.parse(TodoContentProvider.CONTENT_URI + "/"
                    + info.id);
            getContentResolver().delete(uri, null, null);
            fillData();
            */

            /* Code for update and hide */
            AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item
                    .getMenuInfo();
            Uri uri = Uri.parse(TodoContentProvider.CONTENT_URI + "/"
                    + info.id);
            ContentValues values = new ContentValues();
            values.put(TodoTable.COLUMN_DIRTY, 1);
            values.put(TodoTable.COLUMN_DELETED, 1);
            getContentResolver().update(uri,values,null,null);
            fillData();
            return true;
    }
    return super.onContextItemSelected(item);
}

если я поставлю логи в ContentProvider 'Функция запроса это на самом деле не срабатывает.

Любые предложения о том, как это выяснить?

Если я используюadapter.swapCursor(cursor); это работает нормально, просто нене знаю, если это правильный способ сделать это.

public void fillData() {

    // Fields from the database (projection)
    // Must include the _id column for the adapter to work
    String[] from = new String[] { TodoTable.COLUMN_SUMMARY, TodoTable.COLUMN_ID};
    String where = TodoTable.COLUMN_DELETED + " = ?";

    Cursor cursor = getContentResolver().query(TodoContentProvider.CONTENT_URI,from,where,new String[] {"0"},null);

    // Fields on the UI to which we map
    int[] to = new int[] { R.id.label };

    if(lw.getAdapter() == null){
        adapter = new SimpleCursorAdapter(this, R.layout.todo_row, cursor, from,
                to, 0);
        Log.v("Count",Integer.toString(cursor.getCount()));
        lw.setAdapter(adapter);
    }
    else
    {
        adapter.swapCursor(cursor);
    }
}

Ты за помощь

Ответы на вопрос(2)

Ваш ответ на вопрос