How do I load type json file into DropdownButton









up vote
1
down vote

favorite












I have a json file and contains some currency value. I use rootBundle.loadString to load my json data.
Now I need to load the DropdownButton with using my jsonData. DropdownButton text must shows the json value such as "TRL”. But if I try to select any of the menu item I need to save the value like TRL_00. My dropdownbutton is not working in my code.My question is

How do I load type json file into dropdown DropdownButton?



this part is not working:



items: _mapCurrency((String value) 
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
).toList(),


My son file:




"00": "TRL",
"01": "USD",
“02”: "GBP",
“03”: "EUR"



Load json:



Map _mapCurrency;
String _currency;

String jsonCurrency =
await rootBundle.loadString("packages/currencies.json");
_mapCurrency = json.decode(jsonCurrency);


DropDown part:



new FormField<String>(
builder: (FormFieldState<String> state)
return InputDecorator(
decoration: InputDecoration(
labelText: ‘Currency’,
labelStyle: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.bold,
color: Colors.green.shade700),
errorText: state.hasError ? state.errorText : null,
),
isEmpty: _currency == '',
child: new DropdownButtonHideUnderline(
child: new DropdownButton<String>(
style: TextStyle(
fontSize: 18.0,
color: Colors.black,
fontWeight: FontWeight.w500,
),
value: _currency,
isDense: true,
onChanged: (String newValue)
setState(()
_currency = newValue;
state.didChange(newValue);
);
,
items: _mapCurrency((String value)
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
).toList(),
),
),
);
,
validator: (val)
return val != '' ? null : ‘Choose a Currency…’;
,
),









share|improve this question





















  • I am so confused about so many things. First, why are you using await? Adding code to block defeats the purpose of asynchronous code. I believe it is only useful in functions with asyc. I do not know where you are calling it. Are you calling it in initState? Second, is _mapCurrency a map or a function?
    – user1462442
    Nov 8 at 20:43











  • changed a little bit, and ask another question in here: stackoverflow.com/questions/53206296/… List<Map> _mapCurrency... I will post complete code later today. thanks
    – Nick
    Nov 9 at 2:48














up vote
1
down vote

favorite












I have a json file and contains some currency value. I use rootBundle.loadString to load my json data.
Now I need to load the DropdownButton with using my jsonData. DropdownButton text must shows the json value such as "TRL”. But if I try to select any of the menu item I need to save the value like TRL_00. My dropdownbutton is not working in my code.My question is

How do I load type json file into dropdown DropdownButton?



this part is not working:



items: _mapCurrency((String value) 
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
).toList(),


My son file:




"00": "TRL",
"01": "USD",
“02”: "GBP",
“03”: "EUR"



Load json:



Map _mapCurrency;
String _currency;

String jsonCurrency =
await rootBundle.loadString("packages/currencies.json");
_mapCurrency = json.decode(jsonCurrency);


DropDown part:



new FormField<String>(
builder: (FormFieldState<String> state)
return InputDecorator(
decoration: InputDecoration(
labelText: ‘Currency’,
labelStyle: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.bold,
color: Colors.green.shade700),
errorText: state.hasError ? state.errorText : null,
),
isEmpty: _currency == '',
child: new DropdownButtonHideUnderline(
child: new DropdownButton<String>(
style: TextStyle(
fontSize: 18.0,
color: Colors.black,
fontWeight: FontWeight.w500,
),
value: _currency,
isDense: true,
onChanged: (String newValue)
setState(()
_currency = newValue;
state.didChange(newValue);
);
,
items: _mapCurrency((String value)
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
).toList(),
),
),
);
,
validator: (val)
return val != '' ? null : ‘Choose a Currency…’;
,
),









share|improve this question





















  • I am so confused about so many things. First, why are you using await? Adding code to block defeats the purpose of asynchronous code. I believe it is only useful in functions with asyc. I do not know where you are calling it. Are you calling it in initState? Second, is _mapCurrency a map or a function?
    – user1462442
    Nov 8 at 20:43











  • changed a little bit, and ask another question in here: stackoverflow.com/questions/53206296/… List<Map> _mapCurrency... I will post complete code later today. thanks
    – Nick
    Nov 9 at 2:48












up vote
1
down vote

favorite









up vote
1
down vote

favorite











I have a json file and contains some currency value. I use rootBundle.loadString to load my json data.
Now I need to load the DropdownButton with using my jsonData. DropdownButton text must shows the json value such as "TRL”. But if I try to select any of the menu item I need to save the value like TRL_00. My dropdownbutton is not working in my code.My question is

How do I load type json file into dropdown DropdownButton?



this part is not working:



items: _mapCurrency((String value) 
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
).toList(),


My son file:




"00": "TRL",
"01": "USD",
“02”: "GBP",
“03”: "EUR"



Load json:



Map _mapCurrency;
String _currency;

String jsonCurrency =
await rootBundle.loadString("packages/currencies.json");
_mapCurrency = json.decode(jsonCurrency);


DropDown part:



new FormField<String>(
builder: (FormFieldState<String> state)
return InputDecorator(
decoration: InputDecoration(
labelText: ‘Currency’,
labelStyle: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.bold,
color: Colors.green.shade700),
errorText: state.hasError ? state.errorText : null,
),
isEmpty: _currency == '',
child: new DropdownButtonHideUnderline(
child: new DropdownButton<String>(
style: TextStyle(
fontSize: 18.0,
color: Colors.black,
fontWeight: FontWeight.w500,
),
value: _currency,
isDense: true,
onChanged: (String newValue)
setState(()
_currency = newValue;
state.didChange(newValue);
);
,
items: _mapCurrency((String value)
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
).toList(),
),
),
);
,
validator: (val)
return val != '' ? null : ‘Choose a Currency…’;
,
),









share|improve this question













I have a json file and contains some currency value. I use rootBundle.loadString to load my json data.
Now I need to load the DropdownButton with using my jsonData. DropdownButton text must shows the json value such as "TRL”. But if I try to select any of the menu item I need to save the value like TRL_00. My dropdownbutton is not working in my code.My question is

How do I load type json file into dropdown DropdownButton?



this part is not working:



items: _mapCurrency((String value) 
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
).toList(),


My son file:




"00": "TRL",
"01": "USD",
“02”: "GBP",
“03”: "EUR"



Load json:



Map _mapCurrency;
String _currency;

String jsonCurrency =
await rootBundle.loadString("packages/currencies.json");
_mapCurrency = json.decode(jsonCurrency);


DropDown part:



new FormField<String>(
builder: (FormFieldState<String> state)
return InputDecorator(
decoration: InputDecoration(
labelText: ‘Currency’,
labelStyle: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.bold,
color: Colors.green.shade700),
errorText: state.hasError ? state.errorText : null,
),
isEmpty: _currency == '',
child: new DropdownButtonHideUnderline(
child: new DropdownButton<String>(
style: TextStyle(
fontSize: 18.0,
color: Colors.black,
fontWeight: FontWeight.w500,
),
value: _currency,
isDense: true,
onChanged: (String newValue)
setState(()
_currency = newValue;
state.didChange(newValue);
);
,
items: _mapCurrency((String value)
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
).toList(),
),
),
);
,
validator: (val)
return val != '' ? null : ‘Choose a Currency…’;
,
),






json dart flutter dropdownbox






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 8 at 7:36









Nick

1548




1548











  • I am so confused about so many things. First, why are you using await? Adding code to block defeats the purpose of asynchronous code. I believe it is only useful in functions with asyc. I do not know where you are calling it. Are you calling it in initState? Second, is _mapCurrency a map or a function?
    – user1462442
    Nov 8 at 20:43











  • changed a little bit, and ask another question in here: stackoverflow.com/questions/53206296/… List<Map> _mapCurrency... I will post complete code later today. thanks
    – Nick
    Nov 9 at 2:48
















  • I am so confused about so many things. First, why are you using await? Adding code to block defeats the purpose of asynchronous code. I believe it is only useful in functions with asyc. I do not know where you are calling it. Are you calling it in initState? Second, is _mapCurrency a map or a function?
    – user1462442
    Nov 8 at 20:43











  • changed a little bit, and ask another question in here: stackoverflow.com/questions/53206296/… List<Map> _mapCurrency... I will post complete code later today. thanks
    – Nick
    Nov 9 at 2:48















I am so confused about so many things. First, why are you using await? Adding code to block defeats the purpose of asynchronous code. I believe it is only useful in functions with asyc. I do not know where you are calling it. Are you calling it in initState? Second, is _mapCurrency a map or a function?
– user1462442
Nov 8 at 20:43





I am so confused about so many things. First, why are you using await? Adding code to block defeats the purpose of asynchronous code. I believe it is only useful in functions with asyc. I do not know where you are calling it. Are you calling it in initState? Second, is _mapCurrency a map or a function?
– user1462442
Nov 8 at 20:43













changed a little bit, and ask another question in here: stackoverflow.com/questions/53206296/… List<Map> _mapCurrency... I will post complete code later today. thanks
– Nick
Nov 9 at 2:48




changed a little bit, and ask another question in here: stackoverflow.com/questions/53206296/… List<Map> _mapCurrency... I will post complete code later today. thanks
– Nick
Nov 9 at 2:48












1 Answer
1






active

oldest

votes

















up vote
0
down vote



accepted










I asked other question in here How do I load my local json into List<Map> variable?. And help of Günter Zöchbauer I finally finished the steps in my project. Complete code is here.



This my local json.



[
“id”: 00”, “name”: ”TRL”,
“id”: 01”, “name”: ”USD”,
“id”: 02”, “name”: ”GBP”,
“id”: 03”, “name”: ”EUR”,
]




class _MyHomePageState extends State<MyHomePage>
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
final GlobalKey<FormState> _formKey = new GlobalKey<FormState>();

String _mySelectedCurrency;
List<Map> _myCurrencies;

@override
void initState()
// TODO: implement initState
super.initState();
_loadLocalJsonData();


Future _loadLocalJsonData() async
String jsonCurrency = await rootBundle
.loadString("packages/capi/tcbank.json");
setState(()
_myCurrencies = List<Map>.from(jsonDecode(jsonCurrency) as List);
print("*******_myCurrencies: $_myCurrencies");
);


@override
Widget build(BuildContext context)
return _myCurrencies == null ? _buildWait(context) : _buildRun(context);


// TODO: BUILD RUN
Widget _buildRun(BuildContext context)
final _itemsName = _myCurrencies.map((c)
return new DropdownMenuItem<String>(
value: c["id"].toString(),
child: new Text(c["name"].toString()),
);
).toList();

return new Scaffold(
key: _scaffoldKey,
body: new SafeArea(
top: false,
bottom: false,
child: new Form(
key: _formKey,
child: new ListView(
padding: const EdgeInsets.symmetric(
horizontal: 16.0, vertical: 32.0),
children: <Widget>[
//TODO: CURRENCY #########################
new FormField<String>(
builder: (FormFieldState<String> state)
return InputDecorator(
decoration: InputDecoration(
labelText: 'CHOOSE CURRENCY',
labelStyle: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.bold,
color: Colors.green.shade700),
errorText: state.hasError ? state.errorText : null,
),
isEmpty: _mySelectedCurrency == '',
child: new DropdownButtonHideUnderline(
child: new DropdownButton<String>(
isExpanded: true,
style: TextStyle(
fontSize: 14.0,
color: Colors.black,
fontWeight: FontWeight.w500,
),
value: _mySelectedCurrency,
isDense: true,
onChanged: (String newValue)
setState(()
_mySelectedCurrency = newValue;
state.didChange(newValue);
);
,
items: _itemsName,
),
),
);
,
validator: (val)
return val != '' ? null : 'Choose Currency...';
,
),
],
))));


// TODO: BUILD WAIT
Widget _buildWait(BuildContext context)
return new Scaffold(
body: new Center(child: CircularProgressIndicator()),
);







share|improve this answer




















    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203195%2fhow-do-i-load-type-json-file-into-dropdownbutton%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote



    accepted










    I asked other question in here How do I load my local json into List<Map> variable?. And help of Günter Zöchbauer I finally finished the steps in my project. Complete code is here.



    This my local json.



    [
    “id”: 00”, “name”: ”TRL”,
    “id”: 01”, “name”: ”USD”,
    “id”: 02”, “name”: ”GBP”,
    “id”: 03”, “name”: ”EUR”,
    ]




    class _MyHomePageState extends State<MyHomePage>
    final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
    final GlobalKey<FormState> _formKey = new GlobalKey<FormState>();

    String _mySelectedCurrency;
    List<Map> _myCurrencies;

    @override
    void initState()
    // TODO: implement initState
    super.initState();
    _loadLocalJsonData();


    Future _loadLocalJsonData() async
    String jsonCurrency = await rootBundle
    .loadString("packages/capi/tcbank.json");
    setState(()
    _myCurrencies = List<Map>.from(jsonDecode(jsonCurrency) as List);
    print("*******_myCurrencies: $_myCurrencies");
    );


    @override
    Widget build(BuildContext context)
    return _myCurrencies == null ? _buildWait(context) : _buildRun(context);


    // TODO: BUILD RUN
    Widget _buildRun(BuildContext context)
    final _itemsName = _myCurrencies.map((c)
    return new DropdownMenuItem<String>(
    value: c["id"].toString(),
    child: new Text(c["name"].toString()),
    );
    ).toList();

    return new Scaffold(
    key: _scaffoldKey,
    body: new SafeArea(
    top: false,
    bottom: false,
    child: new Form(
    key: _formKey,
    child: new ListView(
    padding: const EdgeInsets.symmetric(
    horizontal: 16.0, vertical: 32.0),
    children: <Widget>[
    //TODO: CURRENCY #########################
    new FormField<String>(
    builder: (FormFieldState<String> state)
    return InputDecorator(
    decoration: InputDecoration(
    labelText: 'CHOOSE CURRENCY',
    labelStyle: TextStyle(
    fontSize: 18.0,
    fontWeight: FontWeight.bold,
    color: Colors.green.shade700),
    errorText: state.hasError ? state.errorText : null,
    ),
    isEmpty: _mySelectedCurrency == '',
    child: new DropdownButtonHideUnderline(
    child: new DropdownButton<String>(
    isExpanded: true,
    style: TextStyle(
    fontSize: 14.0,
    color: Colors.black,
    fontWeight: FontWeight.w500,
    ),
    value: _mySelectedCurrency,
    isDense: true,
    onChanged: (String newValue)
    setState(()
    _mySelectedCurrency = newValue;
    state.didChange(newValue);
    );
    ,
    items: _itemsName,
    ),
    ),
    );
    ,
    validator: (val)
    return val != '' ? null : 'Choose Currency...';
    ,
    ),
    ],
    ))));


    // TODO: BUILD WAIT
    Widget _buildWait(BuildContext context)
    return new Scaffold(
    body: new Center(child: CircularProgressIndicator()),
    );







    share|improve this answer
























      up vote
      0
      down vote



      accepted










      I asked other question in here How do I load my local json into List<Map> variable?. And help of Günter Zöchbauer I finally finished the steps in my project. Complete code is here.



      This my local json.



      [
      “id”: 00”, “name”: ”TRL”,
      “id”: 01”, “name”: ”USD”,
      “id”: 02”, “name”: ”GBP”,
      “id”: 03”, “name”: ”EUR”,
      ]




      class _MyHomePageState extends State<MyHomePage>
      final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
      final GlobalKey<FormState> _formKey = new GlobalKey<FormState>();

      String _mySelectedCurrency;
      List<Map> _myCurrencies;

      @override
      void initState()
      // TODO: implement initState
      super.initState();
      _loadLocalJsonData();


      Future _loadLocalJsonData() async
      String jsonCurrency = await rootBundle
      .loadString("packages/capi/tcbank.json");
      setState(()
      _myCurrencies = List<Map>.from(jsonDecode(jsonCurrency) as List);
      print("*******_myCurrencies: $_myCurrencies");
      );


      @override
      Widget build(BuildContext context)
      return _myCurrencies == null ? _buildWait(context) : _buildRun(context);


      // TODO: BUILD RUN
      Widget _buildRun(BuildContext context)
      final _itemsName = _myCurrencies.map((c)
      return new DropdownMenuItem<String>(
      value: c["id"].toString(),
      child: new Text(c["name"].toString()),
      );
      ).toList();

      return new Scaffold(
      key: _scaffoldKey,
      body: new SafeArea(
      top: false,
      bottom: false,
      child: new Form(
      key: _formKey,
      child: new ListView(
      padding: const EdgeInsets.symmetric(
      horizontal: 16.0, vertical: 32.0),
      children: <Widget>[
      //TODO: CURRENCY #########################
      new FormField<String>(
      builder: (FormFieldState<String> state)
      return InputDecorator(
      decoration: InputDecoration(
      labelText: 'CHOOSE CURRENCY',
      labelStyle: TextStyle(
      fontSize: 18.0,
      fontWeight: FontWeight.bold,
      color: Colors.green.shade700),
      errorText: state.hasError ? state.errorText : null,
      ),
      isEmpty: _mySelectedCurrency == '',
      child: new DropdownButtonHideUnderline(
      child: new DropdownButton<String>(
      isExpanded: true,
      style: TextStyle(
      fontSize: 14.0,
      color: Colors.black,
      fontWeight: FontWeight.w500,
      ),
      value: _mySelectedCurrency,
      isDense: true,
      onChanged: (String newValue)
      setState(()
      _mySelectedCurrency = newValue;
      state.didChange(newValue);
      );
      ,
      items: _itemsName,
      ),
      ),
      );
      ,
      validator: (val)
      return val != '' ? null : 'Choose Currency...';
      ,
      ),
      ],
      ))));


      // TODO: BUILD WAIT
      Widget _buildWait(BuildContext context)
      return new Scaffold(
      body: new Center(child: CircularProgressIndicator()),
      );







      share|improve this answer






















        up vote
        0
        down vote



        accepted







        up vote
        0
        down vote



        accepted






        I asked other question in here How do I load my local json into List<Map> variable?. And help of Günter Zöchbauer I finally finished the steps in my project. Complete code is here.



        This my local json.



        [
        “id”: 00”, “name”: ”TRL”,
        “id”: 01”, “name”: ”USD”,
        “id”: 02”, “name”: ”GBP”,
        “id”: 03”, “name”: ”EUR”,
        ]




        class _MyHomePageState extends State<MyHomePage>
        final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
        final GlobalKey<FormState> _formKey = new GlobalKey<FormState>();

        String _mySelectedCurrency;
        List<Map> _myCurrencies;

        @override
        void initState()
        // TODO: implement initState
        super.initState();
        _loadLocalJsonData();


        Future _loadLocalJsonData() async
        String jsonCurrency = await rootBundle
        .loadString("packages/capi/tcbank.json");
        setState(()
        _myCurrencies = List<Map>.from(jsonDecode(jsonCurrency) as List);
        print("*******_myCurrencies: $_myCurrencies");
        );


        @override
        Widget build(BuildContext context)
        return _myCurrencies == null ? _buildWait(context) : _buildRun(context);


        // TODO: BUILD RUN
        Widget _buildRun(BuildContext context)
        final _itemsName = _myCurrencies.map((c)
        return new DropdownMenuItem<String>(
        value: c["id"].toString(),
        child: new Text(c["name"].toString()),
        );
        ).toList();

        return new Scaffold(
        key: _scaffoldKey,
        body: new SafeArea(
        top: false,
        bottom: false,
        child: new Form(
        key: _formKey,
        child: new ListView(
        padding: const EdgeInsets.symmetric(
        horizontal: 16.0, vertical: 32.0),
        children: <Widget>[
        //TODO: CURRENCY #########################
        new FormField<String>(
        builder: (FormFieldState<String> state)
        return InputDecorator(
        decoration: InputDecoration(
        labelText: 'CHOOSE CURRENCY',
        labelStyle: TextStyle(
        fontSize: 18.0,
        fontWeight: FontWeight.bold,
        color: Colors.green.shade700),
        errorText: state.hasError ? state.errorText : null,
        ),
        isEmpty: _mySelectedCurrency == '',
        child: new DropdownButtonHideUnderline(
        child: new DropdownButton<String>(
        isExpanded: true,
        style: TextStyle(
        fontSize: 14.0,
        color: Colors.black,
        fontWeight: FontWeight.w500,
        ),
        value: _mySelectedCurrency,
        isDense: true,
        onChanged: (String newValue)
        setState(()
        _mySelectedCurrency = newValue;
        state.didChange(newValue);
        );
        ,
        items: _itemsName,
        ),
        ),
        );
        ,
        validator: (val)
        return val != '' ? null : 'Choose Currency...';
        ,
        ),
        ],
        ))));


        // TODO: BUILD WAIT
        Widget _buildWait(BuildContext context)
        return new Scaffold(
        body: new Center(child: CircularProgressIndicator()),
        );







        share|improve this answer












        I asked other question in here How do I load my local json into List<Map> variable?. And help of Günter Zöchbauer I finally finished the steps in my project. Complete code is here.



        This my local json.



        [
        “id”: 00”, “name”: ”TRL”,
        “id”: 01”, “name”: ”USD”,
        “id”: 02”, “name”: ”GBP”,
        “id”: 03”, “name”: ”EUR”,
        ]




        class _MyHomePageState extends State<MyHomePage>
        final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
        final GlobalKey<FormState> _formKey = new GlobalKey<FormState>();

        String _mySelectedCurrency;
        List<Map> _myCurrencies;

        @override
        void initState()
        // TODO: implement initState
        super.initState();
        _loadLocalJsonData();


        Future _loadLocalJsonData() async
        String jsonCurrency = await rootBundle
        .loadString("packages/capi/tcbank.json");
        setState(()
        _myCurrencies = List<Map>.from(jsonDecode(jsonCurrency) as List);
        print("*******_myCurrencies: $_myCurrencies");
        );


        @override
        Widget build(BuildContext context)
        return _myCurrencies == null ? _buildWait(context) : _buildRun(context);


        // TODO: BUILD RUN
        Widget _buildRun(BuildContext context)
        final _itemsName = _myCurrencies.map((c)
        return new DropdownMenuItem<String>(
        value: c["id"].toString(),
        child: new Text(c["name"].toString()),
        );
        ).toList();

        return new Scaffold(
        key: _scaffoldKey,
        body: new SafeArea(
        top: false,
        bottom: false,
        child: new Form(
        key: _formKey,
        child: new ListView(
        padding: const EdgeInsets.symmetric(
        horizontal: 16.0, vertical: 32.0),
        children: <Widget>[
        //TODO: CURRENCY #########################
        new FormField<String>(
        builder: (FormFieldState<String> state)
        return InputDecorator(
        decoration: InputDecoration(
        labelText: 'CHOOSE CURRENCY',
        labelStyle: TextStyle(
        fontSize: 18.0,
        fontWeight: FontWeight.bold,
        color: Colors.green.shade700),
        errorText: state.hasError ? state.errorText : null,
        ),
        isEmpty: _mySelectedCurrency == '',
        child: new DropdownButtonHideUnderline(
        child: new DropdownButton<String>(
        isExpanded: true,
        style: TextStyle(
        fontSize: 14.0,
        color: Colors.black,
        fontWeight: FontWeight.w500,
        ),
        value: _mySelectedCurrency,
        isDense: true,
        onChanged: (String newValue)
        setState(()
        _mySelectedCurrency = newValue;
        state.didChange(newValue);
        );
        ,
        items: _itemsName,
        ),
        ),
        );
        ,
        validator: (val)
        return val != '' ? null : 'Choose Currency...';
        ,
        ),
        ],
        ))));


        // TODO: BUILD WAIT
        Widget _buildWait(BuildContext context)
        return new Scaffold(
        body: new Center(child: CircularProgressIndicator()),
        );








        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 9 at 2:55









        Nick

        1548




        1548



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203195%2fhow-do-i-load-type-json-file-into-dropdownbutton%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

            Edmonton

            Crossroads (UK TV series)