使用 firestore 作为数据库从 Flutter 的 checkboxlistile 中提取选中的列表

问题描述

你好,我需要根据下面的代码提取 checkBoxlistile 小部件中选中项目的列表,并在控制台中打印出来。

例如我应该在这种情况下得到一个可打印的地图{[clientA,False]; [clientF,True];[clientG,False]} 或在 [clientF] 情况下包含选定项目的列表

enter image description here

感谢您的帮助

代码如下:

`

class ListClients5 extends StatefulWidget {

final String  title;

  const ListClients5({Key key,this.title}) : super(key: key);

  @override
  _ListClients5 createState() => _ListClients5();
}

class _ListClients5 extends State<ListClients5> {



@override
  Widget build (BuildContext context) {


return Scaffold(
    appBar:AppBar(
      title: Container(alignment: Alignment.centerLeft,child: Padding(
        padding: const EdgeInsets.all(0.0),child: Text("Horus  ${emailUser.split('@')[0].split('.')[0].toupperCase()} ${emailUser.split('@')[0].split('.')[1].toupperCase()}",textAlign: TextAlign.left,),)),body: FutureBuilder(
future: getList(),builder: (context,AsyncSnapshot<List<dynamic>> snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting) {
          return CircularProgressIndicator();
        } else {
          return Center(
            child: ListView.builder(
                padding: const EdgeInsets.only(bottom: 20.0),scrollDirection: Axis.vertical,shrinkWrap: true,itemCount: snapshot.data.length,itemBuilder: (context,index) {
                  final item = snapshot.data[index].toString();




                  return Center(
                    child:Card(
                        elevation: 9,child: Column(
                            children: <Widget>[
                              

                        Exercise(

                                                title:  snapshot.data[index]?.toString(),//snapshot data should dispaly in this text field

                              ]
                  )
                  )
                  );

                }),);
        }
      },)

);

  }
  Future<List<dynamic>> getList() async {
    var firestore = Firestore.instance;

    DocumentReference docRef = firestore.collection('admin_users').document(idUser);

    // ignore: missing_return
    return docRef.get().then((datasnapshot) {
      if (datasnapshot.exists) {
        List<dynamic> info = datasnapshot.data['clients'].toList();
        print('#');
        print(info); //this line prints [aa,aghshs,fffg,fug,ghh,fggg,ghhh]
        print(info.length); //this line prints 7
        return info;
      }
    });
  }

}

class Exercise extends StatefulWidget {


  String title;
  int index;

  Exercise( {this.title,this.index});

  @override
  _ExerciseState createState() => _ExerciseState();

  }

class _ExerciseState extends State<Exercise> {

  bool selected = false;

  @override
  Widget build(BuildContext context) {

    return new CheckBoxListTile(

      title: Text( widget.title ),value: selected,onChanged: (bool val) {
        setState( () {
          selected = val;

        } );
        ;
      },);

;

  }



}
`

这个想法是选择的列表将允许我查询正确的客户端

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

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