我是新手,我正在尝试将插入文本字段中的数据放入列表中,并将此列表显示在上一个屏幕中。
我在第一个屏幕上做了两个屏幕,我们导航到第一个屏幕,在第二个屏幕上,我有3个来自女巫的文本字段,我想将数据提取到新列表中,并在上一个屏幕中显示此列表,如果有人得到我试图说请先帮助谢谢。
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
String returned = 'Retuned text will appear here..';
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBar(
title: Text('Returning Data Demo'),
),
body: Center(
child: Column(children: [
Text(returned, style: TextStyle(color: Colors.black)),
RaisedButton(
onPressed: () async {
var someValue = await Navigator.of(context)
.push(MaterialPageRoute(builder: (con) => SelectionScreen()));
print(someValue);
if (someValue != null && someValue.toString().isNotEmpty) {
setState(() {
returned = someValue.toString();
});
}
},
child: Text('Get Values', style: TextStyle(color: Colors.white)),
)
])),
);
}
}
class SelectionScreen extends StatefulWidget {
@override
_SelectionScreenState createState() => _SelectionScreenState();
}
class _SelectionScreenState extends State<SelectionScreen> {
TextEditingController c1, c2, c3;
//and son on....
@override
void initState() {
super.initState();
c1 = TextEditingController();
c2 = TextEditingController();
c3 = TextEditingController();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Pick an option'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextField(
controller: c1,
),
TextField(
controller: c2,
),
TextField(
controller: c3,
),
Padding(
padding: const EdgeInsets.all(8.0),
child: RaisedButton(
onPressed: () {
// Close the screen and return "Nope!" as the result.
Navigator.pop(context, [c1.text, c2.text, c3.text]);
},
child: Text('Submit'),
),
)
],
),
),
);
}
}