sqlite - 在关闭之前保存对话框内容
问题描述
我正在制作一个包含项目列表的对话框,每个项目都包含一个可编辑的文本字段。
我想在对话框关闭时将编辑过的文本字段的内容保存到 SQLite 数据库中。
我该怎么做?Flutter 中似乎没有 onClose 监听器之类的东西,一旦关闭对话框,我将无法从文本字段中检索文本。
解决方案
由于您没有共享任何代码 - 所以我分享了一个关于您打算做什么的最小示例。
可以使用 传递数据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'),
)
],
),
)));
}
}