Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在上一个屏幕中将文本字段的插入数据获取到listview中_Flutter_Dart_Flutter Layout - Fatal编程技术网

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'),
              ),
            )
          ],
        ),
      ),
    );
  }
}