0

that data disapear.but i want whenever i hit on delete button it remove immediately not restart the application.how i solve this problem any one sugget me?

Here init state code

 @override
  void initState() {
    super.initState();
    setState(() {
      getPostsData();
    });
    controller.addListener(() {
      double value = controller.offset / 119;

      setState(() {
        topContainer = value;
        closeTopContainer = controller.offset > 50;
      });
    });
    _currentScreen();
  }

Here is my delete method code

void _delete(BuildContext context, int id) async {
    int result = await dbHelper.deletedata(id);
    if (result != 0) {
      _showSnackBar(context, 'Data Deleted Successfully');
      updateListView();
    }
  }

Here is my update list code

 void updateListView() {
    final Future<Database> dbFuture = dbHelper.initializeDatabase();
    dbFuture.then((database) {});
  }

3 Answers3

0

I think adding setState to updateListView() should do it.

void updateListView() {
    final Future<Database> dbFuture = dbHelper.initializeDatabase();
    dbFuture.then((database) {});
    setState((){});
}

Edit: Looks like you only get the data of your database once in initState. Maybe you need to reexecute the function that gets the data everytime you delete something.

MindStudio
  • 706
  • 1
  • 4
  • 13
0

Call getPostsData in updateListView.

void updateListView() {
    final Future<Database> dbFuture = dbHelper.initializeDatabase();
    dbFuture.then((database) {});
    getPostsData();
}
Josteve
  • 11,459
  • 1
  • 23
  • 35
0

Not the base way but you can add a button for refresh the list after deletion and call setState with getPostsData which will refresh items. For better solution you can use provider and notify listeners each time when you make deletion.

Alperen Ekin
  • 258
  • 2
  • 10