title: How to pass data from alertdialog to page in flutter?
body: <p>I am passing data from my alertdialog to item of listview. </p>
  
  <p>Where I can find information about it?</p>
  
  <p>I tried use TextEditingController, with Navigation Routes. And I used materials from <a href="https://www.youtube.com/watch?v=FGfhnS6skMQ" rel="nofollow noreferrer">this Tutorial</a></p>
  
  <p>This is my code:</p>
  
  <pre><code>    class MeasurementsScreen extends StatefulWidget {
    @override
    _MeasurementsScreenState createState() =&gt; _MeasurementsScreenState();
  }
  
  
  class _MeasurementsScreenState extends State&lt;MeasurementsScreen&gt; {
    List&lt;_ListItem&gt; listItems;
    String lastSelectedValue;
    var name = ["Рост", "Вес"];
    var indication = ["Введите ваш рост", "Введите ваш вес"];
    TextEditingController customcintroller;
  
    void navigationPageProgrammTrainingHandler() {
      Navigator.of(context).push(MaterialPageRoute(
          builder: (BuildContext context) =&gt; ProgrammTrainingHandler()),
      );
    }
    @override
    void initState() {
      super.initState();
      initListItems();
    }
  
    Future&lt;String&gt; createAlertDialog(BuildContext context, int indexAl){
      customcintroller = TextEditingController();
      if(indexAl &lt; 2){
        return showDialog(context: context, builder: (context){
          return AlertDialog(
            title: Text(name[indexAl]),
            content: TextField(
              textDirection: TextDirection.ltr,
              controller: customcintroller,
              style: TextStyle(
                  color: Colors.lightGreen[400],
                  fontSize: 18.5),
              decoration: InputDecoration(
                contentPadding: EdgeInsets.only(bottom: 4.0),
                labelText: indication[indexAl],
                alignLabelWithHint: false,
              ),
              keyboardType: TextInputType.phone,
              textInputAction: TextInputAction.done,
            ),
            actions: &lt;Widget&gt;[
              FlatButton(
                child: const Text('ОТМЕНА'),
                onPressed: () {
                  Navigator.of(context).pop();
                },
              ),
              FlatButton(
                child: const Text('ОК'),
                onPressed: () {
                  Navigator.of(context).pop(customcintroller.text.toString());
                },
              ),
            ],
          );
        });
      } else if (indexAl &gt; 1){
        navigationPageProgrammTrainingHandler();
      }
  
    }
  
  
    @override
    Widget build(BuildContext context) {
      return new Scaffold(
        backgroundColor: Color(0xff2b2b2b),
        appBar: AppBar(
          title: Text(
            'Замеры',
            style: new TextStyle(
              color: Colors.white,
  
            ),),
          leading: IconButton(
            icon:Icon(Icons.arrow_back),
            color: Colors.white ,
            onPressed:() =&gt; Navigator.of(context).pop(),
          ),
        ),
        body: ListView.builder(
          physics: BouncingScrollPhysics(),
          itemCount: listItems.length,
          itemBuilder: (BuildContext ctxt, int index){
            return GestureDetector(
                child: listItems[index],
                onTap: () {
                    createAlertDialog(context, index).then((onValue){
  
                    });
                }
            );
          },
        ),
      );
    }
    void initListItems() {
      listItems = [
        new _ListItem(
            bgName: 'assets/images/soso_growth.jpg',
            name: customcintroller.text.toString().isEmpty == false ? customcintroller.text.toString() : "Рост",
            detail: "Нажми, чтобы добавить свой рост"),
        new _ListItem(
            bgName: 'assets/images/soso_weight.jpg',
            name: customcintroller.text.toString().isEmpty == false ? customcintroller.text.toString() :  "Вес",
            detail: "Нажми, чтобы добавить свой вес"),
        new _ListItem(
            bgName: 'assets/images/soso_chest.jpg',
            name: "Грудь",
            detail: "PRO-версия"),
        new _ListItem(
            bgName: 'assets/images/soso_shoulder.jpg',
            name: "Плечи",
            detail: "PRO-версия"),
        new _ListItem(
            bgName: 'assets/images/soso_biceps.jpg',
            name: "Бицепс",
            detail: "PRO-версия")
  
      ];
    }
  }
  class _ListItem extends StatelessWidget {
    _ListItem({this.bgName, this.name, this.detail});
  
    // final int index;
    final String bgName;
    final String name;
    final String detail;
    @override
    Widget build(BuildContext context) {
      return Container(
        height: 180.0,
        margin: const EdgeInsets.symmetric(
          vertical: 1.0,
        ),
        child: new Stack(
          children: &lt;Widget&gt;[
            new Container(
              decoration: new BoxDecoration(
                image: new DecorationImage(
                    image: new AssetImage(bgName),
                    colorFilter: new ColorFilter.mode(
                        Colors.black.withOpacity(0.45), BlendMode.darken),
                    fit: BoxFit.cover,
                    alignment: Alignment.center),
              ),
              child: new SizedBox.expand(
                child: Container(
                  alignment: Alignment.center,
                  child: new Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    crossAxisAlignment: CrossAxisAlignment.center,
                    mainAxisSize: MainAxisSize.min,
                    children: &lt;Widget&gt;[
                      new Text(
                        name,
                        style: new TextStyle(fontSize: 29.0, color: Colors.white),
                      ),
                      Padding(
                        padding: const EdgeInsets.only(top: 12.0),
                        child: new Text(
                          detail,
                          style:
                          new TextStyle(fontSize: 16.0, color: Colors.white),
                        ),
                      )
                    ],
                  ),
                ),
              ),
            ),
          ],
        ),
      );
    }
  }
  </code></pre>
  
  <p>I expect to get text from alertdialog.</p>