Как получить значение из текстового поля и отобразить в текстовом поле (другой экран) - PullRequest
1 голос
/ 02 июня 2019

Я новичок во флаттере, я пытаюсь передать значение из текстового поля, и когда я нажимаю кнопку «Отправить», отображаю его в текстовом поле на другом экране, моя проблема, я не знаю правильный способ получить значение

Код: String txt = ""; TextEditingController controllerTxt = new TextEditingController ();

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: Text('Create'),
        actions: <Widget>[
          FlatButton(
            child: Text('Submit'),
            textColor: Colors.white,
            onPressed: () {
              setState(() {
                //txt = (controllerTxt.text);
                Navigator.pushNamed(context, '/ResultPage');
              });
            },
          ),
        ],
      ),
      body: new Container(
        child: new Column(
          children: <Widget>[
            new TextField(
              controller: controllerTxt,
              maxLines: 5,
              decoration: new InputDecoration(
              ),
            ),
          ],
        ),
      ),
    );
  }
}
class _ResultPageState extends State<ResultPage> {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: Text('Result'),
      ),
      body: new Container(
        padding: EdgeInsets.all(10.0),
        child: new Column(
          children: <Widget>[
            new TextFormField(
              decoration: InputDecoration(
                labelText: 'Name :',
              ),
            ),
            new Text("${controllerTxt.text}"),
          ],
        ),
      ),
    );
  }
}

1 Ответ

1 голос
/ 02 июня 2019

Я сделал то же самое, передав данные через конструктор


   Navigator.push(context,
            MaterialPageRoute(builder: (context) => ResultPage(controllerTxt.text)));

class ResultPage extends StatefulWidget {
  final String result;
 ResultPage(this.result);

...