如何从颤振中的选项列表中制作清单?

问题描述

样本数据:

  var electricianmulti = [
  new Multimodel(
      question: "What services are you looking for?",options: ["Complete wiring","switches","water motor","MCB & fuse"],new Multimodel(
      question: "What time of the day do you prefer?",options: ["Early Morning","Morning","Afternoon","Evening"],];
      

我正在从 listview.generate 制作复选框,如下所示-

children: <Widget>[
                  ...List.generate(
                      electricianmulti[i].options.length,(index) => Container(
                          padding: EdgeInsets.all(5),margin: EdgeInsets.all(10),child: CheckBoxListTile(
                            // controlAffinity: ListTileControlAffinity.leading,title: new Text(
                              electricianmulti[i].options[index].toString(),style: optionstxt,),value:isselected,activeColor: Colors.blue,checkColor: Colors.white,onChanged: (bool value) {
                              setState(() {
                               isselected=value
                              });
                            },

这个代码就像我点击任何一个框都被选中一样。我尝试制作一组​​ bool 并根据 'i' 更新它,但它似乎也不起作用。我在这里做错了什么?

解决方法

value: isselected

正在获取一个布尔值并将其分配给所有复选框。 Change isselected to a list of boolean 然后使用

value: isselected[i];

也在 setState 中使用

isselected[i] = value;

确保选中的长度等于复选框的数量。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...