Estoy creando una aplicación que está obteniendo personas del repositorio y luego las muestra en la pantalla. El usuario debería poder eliminar a la persona del repositorio deslizando el dedo hacia la derecha. Cuando el usuario desliza el dedo hacia la derecha, la propiedad confirmDismiss: se activa y aparece el cuadro de diálogo que pregunta al usuario si está seguro.

¿Es posible que el content: dentro de un diálogo sea el nombre de esa persona? Entonces, si alguien quisiera eliminar a Nicolas Cage de la lista, diría "¿Está seguro de que desea eliminar a Nicolas Cage?".

Así es como se implementa la clase Person:

class Person {

  int _id;
  String _fullName;
  String _email;
  String _mobile;
  String _other;

  Person(int id, String fullName, String email, String mobile, String other) {
    this._id = id;
    this._fullName = fullName;
    this._email = email;
    this._mobile = mobile;
    this._other = other;
  }
}

Así es como se implementa el confirmDissmis Dismissible:

confirmDismiss: (direction) async {
                          bool response = await showDialog<bool>(
                            context: context,
                            builder: (BuildContext context) {
                              return AlertDialog(
                                content: const Text('Are you sure you want to delete '),
                                actions: <Widget>[
                                  FlatButton(
                                    child: const Text('Yes'),
                                    onPressed: () => Navigator.pop(context, true),
                                  ),
                                  FlatButton(
                                    child: const Text('No'),
                                    onPressed: () => Navigator.pop(context, false),
                                  ),
                                ],
                              );
                            },
                          );
                        },

En el contenido de AlertDialog quiero que diga "¿Está seguro de que desea eliminar Nicolas Cage?" si suponemos que el usuario deslizó el dedo hacia la derecha en el mosaico de lista de Nicolas Cage. Este método que probé no funciona. Dice que la evaluación de esta expresión constante arroja una excepción, un valor constante no válido.

0
Aleksa Vujisic 29 ago. 2020 a las 20:04

1 respuesta

La mejor respuesta

Simplemente agregue people[index].name con content: Text('Are you sure you want to delete ') como content: Text('Are you sure you want to delete ' + people[index].fullName).

Código:

confirmDismiss: (direction) async {
                          bool response = await showDialog<bool>(
                            context: context,
                            builder: (BuildContext context) {
                              return AlertDialog(
                                content: Text('Are you sure you want to delete the user: ${people[index].fullName}'),
                                actions: <Widget>[
                                  FlatButton(
                                    child: const Text('Yes'),
                                    onPressed: () => Navigator.pop(context, true),
                                  ),
                                  FlatButton(
                                    child: const Text('No'),
                                    onPressed: () => Navigator.pop(context, false),
                                  ),
                                ],
                              );
                            },
                          );
                        },
0
OMi Shah 29 ago. 2020 a las 18:09