首页 > 解决方案 > How to save values selected from a flutter multiselect widget in to a list

问题描述

I have used this flutter package "multiselect" in my flutter project to select multiple data from a dropdown.

List _fines;

MultiSelect(
            autovalidate: false,
            titleText: "Fine list",
            validator: (value) {
              if (value == null) {
                return 'Please select one or more option(s)';
              }
            },
            errorText: 'Please select one or more option(s)',
            dataSource: [
              {"display": "Fine No 1", "index": 1, "value": 5000},
              {"display": "Fine no 2", "index": 2, "value": 2500},
              {"display": "Fine no 3", "index": 3, "value": 1000},
              {"display": "Fine no 4", "index": 4, "value": 500}
            ],
            textField: 'display',
            valueField: 'index',
            filterable: true,
            required: true,
            value: null,
            onSaved: (value) {
              setState(() {
                  _fines = value;
                });

            })

I cannot save data into the list. After the on saved it says _fines list is null. Thanks for your time.

标签: flutterdart

解决方案


You can get your last selected values with change callback function as a parameter of MultiSelect widget

List<int> selectedValues = [];

MultiSelect(
            autovalidate: false,
            titleText: "title",
            validator: (value) {
              if (value == null) {
                return 'Please select one or more option(s)';
              }
            },
            errorText: 'Please select one or more option(s)',
            dataSource: [
              {
                "display": "Australia",
                "value": 1,
              },
              {
                "display": "Canada",
                "value": 2,
              },
              {
                "display": "India",
                "value": 3,
              },
              {
                "display": "United States",
                "value": 4,
              }
            ],
            textField: 'display',
            valueField: 'value',
            filterable: true,
            required: true,
            value: null,
            change: (values){
              selectedValues = values;
              print(selectedValues);
            },
          ),

推荐阅读