Сохранение содержимого диалога перед его закрытием - PullRequest
0 голосов
/ 09 марта 2019

Я создаю диалог, содержащий список элементов, каждый из которых включает редактируемое текстовое поле.

Я хочу сохранить содержимое отредактированных текстовых полей в базе данных SQLite при закрытии диалога.

Как бы я это сделал? Похоже, что во Flutter нет прослушивателя onClose, и после закрытия диалога я не смогу извлечь текст из текстовых полей.

1 Ответ

1 голос
/ 09 марта 2019

Поскольку вы не поделились ни одним кодом, я привожу минимальный пример того, что вы намереваетесь делать.

Данные могут быть переданы с использованием Navigator.

class DemoApp extends StatefulWidget {
  @override
  DemoAppState createState() {
    return new DemoAppState();
  }
}

class DemoAppState extends State<DemoApp> {
  String val = 'Empty';

  TextEditingController cntrl = TextEditingController();

  @override
  void dispose() {
    cntrl.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Container(
            child: Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Text('Value is -- $val'),
          RaisedButton(
            onPressed: () async {
              val = await showDialog(
                  context: context,
                  builder: (context) {
                    cntrl.clear();
                    return AlertDialog(
                      title: Text('Enter Value'),
                      content: TextField(
                        controller: cntrl,
                      ),
                      actions: <Widget>[
                        FlatButton(
                            onPressed: () {
                              Navigator.pop(context, cntrl.text);
                            },
                            child: Text('Save')),
                      ],
                    );
                  });
              setState(() {});
            },
            child: Text('Edit Value'),
          )
        ],
      ),
    )));
  }
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...