我正在创建一个包含项目列表的对话框,每个项目都包含一个可编辑的文本字段。
我想在对话框关闭时将已编辑文本字段的内容保存到SQLite数据库中。
我该怎么做?在Flutter中似乎没有onClose侦听器之类的东西,一旦关闭对话框,我将无法从文本字段中检索文本。
答案 0 :(得分:1)
由于您尚未共享任何代码-因此,我仅分享您打算做的一个最小示例。
可以使用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'),
)
],
),
)));
}
}