title: How to add textfield value based on drop down item is selected in flutter
body: <p>here when I am select the value from drop down the country code text field value is changed based on drop-down item is selected, in this example I have some static value when I am selecting the USA from drop-down value the country code value is automatically changed +1 and when I am selecting India from drop-down the country code will be changed +91.</p>
  
  <p>Here is the image of output so you get an better idea.</p>
  
  <p><a href="https://i.stack.imgur.com/ZZAKI.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ZZAKI.png" alt="enter image description here"></a></p>
  
  <p>Here is code i've tried.</p>
  
  <pre><code>import 'package:flutter/gestures.dart';
  import 'package:flutter/material.dart';
  import 'package:flutter/services.dart';
  
  import 'package:flutter_masked_text/flutter_masked_text.dart';
  import 'package:font_awesome_flutter/font_awesome_flutter.dart';
  
  import 'package:tudo/src/modules/signup/index.dart';
  
  import 'package:tudo/src/utils/app_constants_value.dart';
  import 'package:tudo/src/utils/roundrectbutton.dart';
  
  class SignupScreen extends StatefulWidget {
    const SignupScreen({
      Key key,
      @required SignupBloc signupBloc,
    })  : _signupBloc = signupBloc,
          super(key: key);
  
    final SignupBloc _signupBloc;
  
    @override
    SignupScreenState createState() {
      return new SignupScreenState(_signupBloc);
    }
  }
  
  class SignupScreenState extends State&lt;SignupScreen&gt; {
    final SignupBloc _signupBloc;
    SignupScreenState(this._signupBloc);
  
    static final List&lt;String&gt; _dropdownItems = &lt;String&gt;['India', 'USA'];
    final formKey = new GlobalKey&lt;FormState&gt;();
    bool _validate = false;
  
    Person person = new Person();
    var controller = new MaskedTextController(mask: '(000) 000 0000');
    String _dropdownValue = 'India';
    String _countryCode = '+91';
    String _errorText;
  
    @override
    void initState() {
      super.initState();
      this._signupBloc.dispatch(LoadSignupEvent());
    }
  
    @override
    void dispose() {
      super.dispose();
    }
  
    Widget _buildCountry() {
      return FormField(
        builder: (FormFieldState state) {
          return DropdownButtonHideUnderline(
            child: new Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: &lt;Widget&gt;[
                new InputDecorator(
                  decoration: InputDecoration(
                    filled: false,
                    hintText: 'Choose Country',
                    prefixIcon: Icon(Icons.location_on),
                    labelText:
                        _dropdownValue == null ? 'Where are you from' : 'From',
                    errorText: _errorText,
                  ),
                  isEmpty: _dropdownValue == null,
                  child: new DropdownButton&lt;String&gt;(
                    value: _dropdownValue,
                    isDense: true,
                    onChanged: (String newValue) {
                      print('value change');
                      print(newValue);
                      person.country = newValue;
                      if (newValue == 'India') {
                        person.countryCode = '+91';
                      } else if (newValue == 'USA') {
                        person.countryCode = '+1';
                      } else {
                        person.countryCode = '+1';
                      }
                      setState(() {
                        _countryCode = person.countryCode;
                        _dropdownValue = person.country;
                      });
                      print('person.countryCode');
                      print('${person.countryCode}');
                    },
                    items: _dropdownItems.map((String value) {
                      return DropdownMenuItem&lt;String&gt;(
                        value: value,
                        child: Text(value),
                      );
                    }).toList(),
                  ),
                ),
              ],
            ),
          );
        },
      );
    }
  
    Widget _buildPhonefiled() {
      return Row(
        children: &lt;Widget&gt;[
          new Expanded(
            child: new TextFormField(
              initialValue: _countryCode,
              enabled: false,
              decoration: InputDecoration(
                filled: false,
                prefixIcon: Icon(FontAwesomeIcons.globe),
                labelText: AppConstantsValue.appConst['signup']['code']
                    ['translation'],
                hintText: "Country code",
              ),
              // onSaved: (String value) {
              //   setState(() {
              //     _countryCode = person.countryCode;
              //   });
              // },
            ),
            flex: 2,
          ),
          new SizedBox(
            width: 10.0,
          ),
          new Expanded(
            child: new TextFormField(
              controller: controller,
              keyboardType: TextInputType.number,
              decoration: InputDecoration(
                filled: false,
                labelText: AppConstantsValue.appConst['signup']['mobile']
                    ['translation'],
                hintText: "Mobile number",
                prefixIcon: new Icon(Icons.mobile_screen_share),
              ),
              onSaved: (String value) {
                person.phoneNumber = value;
              },
            ),
            flex: 5,
          ),
        ],
      );
    }
  
    Widget _buildSignupButton(BuildContext context) {
      return GestureDetector(
        child: RoundrectButton.buildRoundedRectButton(
            AppConstantsValue.appConst['signup']['signup']['translation'],
            signUpGradients,
            false),
        onTap: () {
          //  _submit();
          final FormState form = formKey.currentState;
          form.save();
          if (form.validate() &amp;&amp; person.termsAndCondition) {
            Map&lt;String, dynamic&gt; signupdata = {
              'countyCode': person.countryCode,
              'phoneNumber': person.phoneNumber,
            };
          } else {
            setState(() {
              _validate = true;
            });
          }
        },
      );
    }
  
    @override
    Widget build(BuildContext context) {
      return SafeArea(
        top: false,
        bottom: false,
        child: Form(
          key: formKey,
          autovalidate: _validate,
          child: Scrollbar(
            child: SingleChildScrollView(
              dragStartBehavior: DragStartBehavior.down,
              padding: const EdgeInsets.symmetric(horizontal: 16.0),
              child: new Container(
                margin: EdgeInsets.fromLTRB(30, 100, 30, 0),
                child: new Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: [
                    _buildCountry(),
                    _buildPhonefiled(),
                    SizedBox(
                      height: 20.0,
                    ),
                    _buildSignupButton(context),
  
                  ],
                ),
              ),
            ),
          ),
        ),
      );
    }
  }
  
  class Person {
    String email = '';
    String country = '';
    String countryCode = '';
    String phoneNumber = '';
    String firstname = '';
    String lastname = '';
    String password = '';
    bool termsAndCondition = false;
  }
  </code></pre>