In my code can select multiple checkboxes, but I want to print the selected checkboxes titles.And also then application run checkboxes are unselecting ( checkboxes values are bool = false)
Ex: Like as this Image I selected dart and java checkboxes so I want to display those names in the console.I have no idea how to equal the check box value to string values. How to print that values?
code
import 'package:flutter/material.dart';
class HomePageWidget extends StatefulWidget {
const HomePageWidget({Key? key}) : super(key: key);
@override
_HomePageWidgetState createState() => _HomePageWidgetState();
}
class _HomePageWidgetState extends State<HomePageWidget> {
bool? checkboxListTileValue1;
bool? checkboxListTileValue2;
bool? checkboxListTileValue3;
bool? checkboxListTileValue4;
bool? checkboxListTileValue5;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
automaticallyImplyLeading: false,
title: Text(
'Page Title',
),
actions: [],
centerTitle: false,
elevation: 2,
),
body: SafeArea(
child: GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Theme(
data: ThemeData(
unselectedWidgetColor: Color(0xFF95A1AC),
),
child: CheckboxListTile(
value: checkboxListTileValue1 ??= false,
onChanged: (newValue) async {
setState(() => checkboxListTileValue1 = newValue!);
},
title: Text(
'c ',
),
tileColor: Color(0xFFF5F5F5),
dense: false,
controlAffinity: ListTileControlAffinity.trailing,
),
),
Theme(
data: ThemeData(
unselectedWidgetColor: Color(0xFF95A1AC),
),
child: CheckboxListTile(
value: checkboxListTileValue2 ??= false,
onChanged: (newValue) async {
setState(() => checkboxListTileValue2 = newValue!);
},
title: Text(
'c',
),
tileColor: Color(0xFFF5F5F5),
dense: false,
controlAffinity: ListTileControlAffinity.trailing,
),
),
Theme(
data: ThemeData(
unselectedWidgetColor: Color(0xFF95A1AC),
),
child: CheckboxListTile(
value: checkboxListTileValue3 ??= false,
onChanged: (newValue) async {
setState(() => checkboxListTileValue3 = newValue!);
},
title: Text(
'java',
),
tileColor: Color(0xFFF5F5F5),
dense: false,
controlAffinity: ListTileControlAffinity.trailing,
),
),
Theme(
data: ThemeData(
unselectedWidgetColor: Color(0xFF95A1AC),
),
child: CheckboxListTile(
value: checkboxListTileValue4 ??= false,
onChanged: (newValue) async {
setState(() => checkboxListTileValue4 = newValue!);
},
title: Text(
'react',
),
tileColor: Color(0xFFF5F5F5),
dense: false,
controlAffinity: ListTileControlAffinity.trailing,
),
),
Theme(
data: ThemeData(
unselectedWidgetColor: Color(0xFF95A1AC),
),
child: CheckboxListTile(
value: checkboxListTileValue5 ??= false,
onChanged: (newValue) async {
setState(() => checkboxListTileValue5 = newValue!);
},
title: Text(
'dart',
),
tileColor: Color(0xFFF5F5F5),
dense: false,
controlAffinity: ListTileControlAffinity.trailing,
),
),
],
),
),
),
);
}
}
CodePudding user response:
Try the following code:
import 'package:flutter/material.dart';
class HomePageWidget extends StatefulWidget {
const HomePageWidget({Key? key}) : super(key: key);
@override
_HomePageWidgetState createState() => _HomePageWidgetState();
}
class _HomePageWidgetState extends State<HomePageWidget> {
bool? checkboxListTileValue1;
bool? checkboxListTileValue2;
bool? checkboxListTileValue3;
bool? checkboxListTileValue4;
bool? checkboxListTileValue5;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
automaticallyImplyLeading: false,
title: Text(
'Page Title',
),
actions: [],
centerTitle: false,
elevation: 2,
),
body: SafeArea(
child: GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Theme(
data: ThemeData(
unselectedWidgetColor: Color(0xFF95A1AC),
),
child: CheckboxListTile(
value: checkboxListTileValue1 ??= false,
onChanged: (newValue) async {
print('c ');
setState(() => checkboxListTileValue1 = newValue!);
},
title: Text(
'c ',
),
tileColor: Color(0xFFF5F5F5),
dense: false,
controlAffinity: ListTileControlAffinity.trailing,
),
),
Theme(
data: ThemeData(
unselectedWidgetColor: Color(0xFF95A1AC),
),
child: CheckboxListTile(
value: checkboxListTileValue2 ??= false,
onChanged: (newValue) async {
print('c');
setState(() => checkboxListTileValue2 = newValue!);
},
title: Text(
'c',
),
tileColor: Color(0xFFF5F5F5),
dense: false,
controlAffinity: ListTileControlAffinity.trailing,
),
),
Theme(
data: ThemeData(
unselectedWidgetColor: Color(0xFF95A1AC),
),
child: CheckboxListTile(
value: checkboxListTileValue3 ??= false,
onChanged: (newValue) async {
print('java');
setState(() => checkboxListTileValue3 = newValue!);
},
title: Text(
'java',
),
tileColor: Color(0xFFF5F5F5),
dense: false,
controlAffinity: ListTileControlAffinity.trailing,
),
),
Theme(
data: ThemeData(
unselectedWidgetColor: Color(0xFF95A1AC),
),
child: CheckboxListTile(
value: checkboxListTileValue4 ??= false,
onChanged: (newValue) async {
print('react');
setState(() => checkboxListTileValue4 = newValue!);
},
title: Text(
'react',
),
tileColor: Color(0xFFF5F5F5),
dense: false,
controlAffinity: ListTileControlAffinity.trailing,
),
),
Theme(
data: ThemeData(
unselectedWidgetColor: Color(0xFF95A1AC),
),
child: CheckboxListTile(
value: checkboxListTileValue5 ??= false,
onChanged: (newValue) async {
print('dart');
setState(() => checkboxListTileValue5 = newValue!);
},
title: Text(
'dart',
),
tileColor: Color(0xFFF5F5F5),
dense: false,
controlAffinity: ListTileControlAffinity.trailing,
),
),
],
),
),
),
);
}
}