1
resposta

[Projeto] Desafio Persistência de dados

Eu decidi criar um widget separado para tratar de Alerts.

Fui na pasta lib /components / show_dialog.dart.

Segue o código abaixo do widget:

import 'package:flutter/material.dart';

import '../data/task_dao.dart';

class ShowDialog extends StatelessWidget {
  String title;
  String message;
  String param;

  ShowDialog(this.title, this.message, this.param,{Key? key}): super(key: key);

  @override
  Widget build(BuildContext context) {
    return AlertDialog(
      title: Text(title),
      icon: Icon(Icons.delete),
      content: Text(message),
      actions: <Widget>[
        TextButton(
          onPressed: () => Navigator.pop(context, 'Não'),
          child: const Text('Não'),
        ),
        TextButton(
          onPressed: () {
            TaskDao().delete(param);
            Navigator.pop(context, 'Sim');
            },
          child: const Text('Sim'),
        ),
      ],
    );
  }
}

Percebam que eu criei, no construtor alguns parâmetros para reutilizar este widget em outras ocasiões com algumas modificações a serem realizadas futuramente.

Atenção para o parâmetro "param" que receberá o nome da Task e fará o delete desta.


Na classe task.dart, eu alterei o evento onLongPressed para receber o widget com os parâmetros no construtor.

onLongPress: (){
                          showDialog(
                          context: context, 
                          builder: (BuildContext context){
                              return ShowDialog('Deletar', 'Tem certeza que deseja deletar essa tarefa ?', widget.nome);
                          });
                        },

É necessário chamar o método showDialog com os atributos contex e builder. Dentro do builder é preciso criar um BuildContext e dar um return no widget ShowDialog que foi criado.

1 resposta

Eu to impressionado com a sua sagacidade Rafael!

Mandou bem mais uma vez c: