我有两个文本控制器,我想将两个文本控制器的数据从第二页传递到主屏幕,现在我的代码可以很好地使用一个变量,但是我如何传递多个变量并使用它们。
Container(
margin: EdgeInsets.only(top:30),
child:RaisedButton(
onPressed: (){
Navigator.pop(context, titleController.text); //i want to pass multiple controllers here
print(titleController.text);
},
child: Text("Submit"),
),
),
使用: 这是我使用返回数据的方式。对于一个文本字段来说效果很好,但我希望通过多个字段。
_navigateAndDisplaySelection(BuildContext context) async {
final result = await Navigator.push(
context,
MaterialPageRoute(builder: (context) => SecondScreen()),
);
varlistSection.insert(0,
listSectionMethod("$result", "hello from click", Icons.forward), //result contains one text field data, i want to use it for more
);
setState(() {});
}
答案 0 :(得分:1)
Fayakon,您对一个变量所做的事情看起来不错。尝试像这样弹出时从第二页返回一个字符串列表,
List<String> list = new List<String>();
list.add(titleController.text);
list.add(detailController.text);
Navigator.pop(context, list);
然后在首页功能中使用它,
_navigateAndDisplaySelection(BuildContext context) async {
final result = await Navigator.push(context,
MaterialPageRoute(builder: (context) => SecondScreen()),
);
varlistSection.insert(0,
listSectionMethod(result[0], result[1], Icons.forward), //index would be for the data you wanna use
);
setState(() {});
}