问题描述
你好,我需要根据下面的代码提取 checkBoxlistile 小部件中选中项目的列表,并在控制台中打印出来。
例如我应该在这种情况下得到一个可打印的地图{[clientA,False]; [clientF,True];[clientG,False]} 或在 [clientF] 情况下包含选定项目的列表
感谢您的帮助
代码如下:
`
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 (将#修改为@)