Flutter 在上一个屏幕中将文本字段的插入数据获取到listview中
我是颤振新手,我正在尝试将文本字段中插入的数据放入列表,并将此列表显示在上一个屏幕中 我在第一个屏幕上做了两个屏幕,我们导航到第一个屏幕,在第二个屏幕上,我有三个文本字段,我想将数据提取到一个新列表中,并将此列表显示到前一个屏幕中。如果有人了解我要说的内容,请提前帮助谢谢 这是我的主页Flutter 在上一个屏幕中将文本字段的插入数据获取到listview中,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我是颤振新手,我正在尝试将文本字段中插入的数据放入列表,并将此列表显示在上一个屏幕中 我在第一个屏幕上做了两个屏幕,我们导航到第一个屏幕,在第二个屏幕上,我有三个文本字段,我想将数据提取到一个新列表中,并将此列表显示到前一个屏幕中。如果有人了解我要说的内容,请提前帮助谢谢 这是我的主页 import "package:flutter/material.dart"; import 'second.dart'; void main() { runApp(new MaterialApp(home
import "package:flutter/material.dart";
import 'second.dart';
void main() {
runApp(new MaterialApp(home: new MyApp(),
routes: <String, WidgetBuilder>{
"/Data": (BuildContext context) => new Data()
}));
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("NOTE bOOK"),
),
body: new Container(
),
floatingActionButton: new FloatingActionButton(
onPressed: () {
Navigator.of(context).pushNamed("/Data");
},
child: new Icon(Icons.add))),
);
}
导入“包装:颤振/材料.省道”;
导入“second.dart”;
void main(){
runApp(新材料应用)(主页:new MyApp(),
路线:{
“/Data”:(BuildContext)=>newdata()
}));
}
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
appBar:appBar(
标题:文本(“笔记本”),
),
主体:新容器(
),
floatingActionButton:新的floatingActionButton(
已按下:(){
Navigator.of(context.pushNamed(“/Data”);
},
子项:新图标(Icons.add)),
);
}
这是我的第二页
import 'package:flutter/material.dart';
import 'package:flutter_apptasktwo/main.dart';
class Data extends StatefulWidget {
@override
_DataState createState() => _DataState();
}
class _DataState extends State<Data> {
List<String> messages = List();
var _textController = new TextEditingController();
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
backgroundColor: Color(0xff84FFFF),
appBar: AppBar(
title: Text("List"),
),
body: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new
TextField(
controller : _textController,
decoration: InputDecoration(
border: InputBorder.none,
hintText: 'Hint text '
)
),
new
TextField(
controller : _textController,
decoration: InputDecoration(
border: InputBorder.none,
hintText: 'Hint date'
)
),
new
TextField(
controller : _textController,
decoration: InputDecoration(
border: InputBorder.none,
hintText: 'Hint discription '
),
),
FloatingActionButton(
onPressed: () {
Navigator.pop(context ,MyApp());
},
child: Icon(Icons.save),
backgroundColor: Colors.green,
),
],
)
),
);
}
}
}
导入“包装:颤振/材料.省道”;
导入“包:flatter_apptasktwo/main.dart”;
类数据扩展StatefulWidget{
@凌驾
_DataState createState()=>\u DataState();
}
类_DataState扩展状态{
列表消息=列表();
var_textController=新的textededitingcontroller();
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
背景颜色:颜色(0xff84FFFF),
appBar:appBar(
标题:文本(“列表”),
),
正文:新栏目(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
新的
文本字段(
控制器:_textController,
装饰:输入装饰(
边框:InputBorder.none,
hintText:“提示文本”
)
),
新的
文本字段(
控制器:_textController,
装饰:输入装饰(
边框:InputBorder.none,
hintText:“提示日期”
)
),
新的
文本字段(
控制器:_textController,
装饰:输入装饰(
边框:InputBorder.none,
hintText:“提示说明”
),
),
浮动操作按钮(
已按下:(){
pop(上下文,MyApp());
},
子:图标(Icons.save),
背景颜色:Colors.green,
),
],
)
),
);
}
}
}
类主屏幕扩展StatefulWidget{
@凌驾
_HomeScreenState createState()=>\u HomeScreenState();
}
类_homescrenstate扩展状态{
返回的字符串='返回的文本将显示在此处..';
@凌驾
小部件构建(构建上下文){
返回脚手架(
背景颜色:Colors.white,
appBar:appBar(
标题:文本(“返回数据演示”),
),
正文:中(
子项:列(子项:[
文本(返回,样式:TextStyle(颜色:Colors.black)),
升起的按钮(
onPressed:()异步{
var someValue=await Navigator.of(上下文)
.push(materialpage路线(生成器:(con)=>SelectionScreen());
打印(someValue);
if(someValue!=null&&someValue.toString().isNotEmpty){
设置状态(){
returned=someValue.toString();
});
}
},
子项:Text('Get Values',style:TextStyle(颜色:Colors.white)),
)
])),
);
}
}
类选择屏幕扩展StatefulWidget{
@凌驾
_SelectionScreenState createState()=>\u SelectionScreenState();
}
类_SelectionScreenState扩展状态{
文本编辑控制器c1、c2、c3;
//还有儿子。。。。
@凌驾
void initState(){
super.initState();
c1=文本编辑控制器();
c2=文本编辑控制器();
c3=文本编辑控制器();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“选择选项”),
),
正文:中(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
文本字段(
控制员:c1,,
),
文本字段(
控制员:c2,
),
文本字段(
控制员:c3,,
),
填充物(
填充:常数边集全部(8.0),
孩子:升起按钮(
已按下:(){
//关闭屏幕并返回“否!”作为结果。
pop(上下文[c1.text,c2.text,c3.text]);
},
子项:文本('Submit'),
),
)
],
),
),
);
}
}
请添加您试图实现的代码。ssir我已经添加了代码,如果您有时间,请提前查看…谢谢
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'),
),
)
],
),
),
);
}
}