1
resposta

Desafio: Confirmação ao deletar e persistencia de nivel

usei um pacote chamado slidable pra quando arrastar pra direita mostrar a opcao de delete e caixa de confirmacao apos clicar

return Slidable(
                              key: ValueKey(task.name),
                              endActionPane: ActionPane(
                                motion: const ScrollMotion(),
                                extentRatio: 0.25,
                                children: [
                                  SlidableAction(
                                    onPressed: (context) {
                                      showDialog(
                                          context: context,
                                          builder: (BuildContext context) {
                                            return AlertDialog(
                                              title: Text(
                                                  'Deseja excluir ${task.name}?'),
                                              content: const Text(
                                                  'A ação não pode ser desfeita.'),
                                              actions: [
                                                TextButton(
                                                  onPressed: () {
                                                    Navigator.of(context).pop();
                                                  },
                                                  child: const Text('Não'),
                                                ),
                                                TextButton(
                                                  onPressed: () {
                                                    TaskDao().delete(task.name);
                                                    Navigator.of(context).pop();
                                                  },
                                                  child: const Text('Sim'),
                                                ),
                                              ],
                                              elevation: 24,
                                            );
                                          });
                                    },
                                    backgroundColor: Colors.red,
                                    foregroundColor: Colors.white,
                                    icon: Icons.delete,
                                    label: 'Delete',
                                  ),
                                ],
                              ),
                              child: task,
                            );

no banco eu adicionei as colunas level e maestria na tabela pra manter algumas coisas dos desafios anteriores e modifiquei os metodos conforme necessario

lass TaskDao {
  //attributes
  static const String _tableName = 'taskTable';
  static const String _name = 'name';
  static const String _difficulty = 'difficulty';
  static const String _image = 'image';
  static const String _level = 'level';
  static const String _mastery = 'mastery';

  //constructor
  static const String tableSql = 'CREATE TABLE $_tableName('
      '$_name TEXT, '
      '$_difficulty INTEGER, '
      '$_image TEXT, '
      '$_level TEXT, '
      '$_mastery TEXT)';

link do projeto https://github.com/Zan-Kir/Alura/tree/main/nosso_primeiro_projeto

1 resposta

Oii, Murilo.

Que alegria ver seu projeto compartilhado aqui! Parabéns pelo esforço e dedicação, é muito gratificante ver o progresso dos estudantes.

Lembre-se de que, além de compartilhar aqui no fórum, você também pode marcar a Alura nas redes sociais para que mais pessoas possam ver seu trabalho.

A Alura tem perfis em várias redes sociais, você pode encontrá-los aqui. E não se esqueça do nosso Discord de alunos da Alura.

Um abraço e bons estudos.