在 flutter 中初始化后如何更改 RadioListTile 按钮选择状态

how can i change a RadioListTile button selection state after it has been initialized in flutter

我根据 initStat 函数中的字符串项列表创建了一个 RadioListTile。但是我无法让单选按钮在被选中时改变。如果它在构建函数中,我可以调用 setState 并将其标记为已选中。 当我在代码开头创建它时,如何将其标记为已选中。下面是我试过的代码,它实际上打印了选定的 radioTile 值,但我无法让它更改选定状态或单选按钮选择。

List<String> list = ['Satisfied', 'Not Satisfied', 'Very Satisfied','Neutral'];

String _radioGroupValue = '';
int selectedRadioTile = 0;

void initState() {
super.initState();
selectedRadioTile = 0;
setState(() {
  for (int n = 0; n < list.length; n++) {
    answersRadio.add(RadioListTile(
      value: n,
      groupValue: _radioGroupValue,
      onChanged: (val) {
        print('selected Radio index $val');
        setSelectedRadioTile(val);
        setState(() {

        });
      },
      title: Text(list[n]),
      selected: _radioGroupValue == list[n] ? true : false,
     ));
    }
  });
}

 setSelectedRadioTile(int val){
   setState(() {
     selectedRadioTile = val;
   });
 }

 child: Column(children: answersRadio,)

设置int _groupValue = -1。根据需要定义 value : 参数的值

Radio(
      materialTapTargetSize:
      MaterialTapTargetSize.shrinkWrap,
      visualDensity: VisualDensity.comfortable,
      activeColor: AppTheme.primaryColor,
      value: 1,
      groupValue: _groupValue,
      onChanged: (value) {
         setState(() {
            _groupValue = value as int;
         });
        },
      ),
class Example extends StatefulWidget {
  const Example({Key? key}) : super(key: key);

  @override
  State<StatefulWidget> createState() {
    return _Examplestate();
  }
}

class _Examplestate extends State<Example> {
  List<String> list = [
    'Satisfied',
    'Not Satisfied',
    'Very Satisfied',
    'Neutral'
  ];

  String? _radioGroupValue;
  List<RadioListTile> answersRadio = [];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Stateful Widget'),
      ),
      body: Column(
        children: [
          for (var n in list)
            RadioListTile<String>(
              value: n,
              groupValue: _radioGroupValue,
              onChanged: (val) {
                _radioGroupValue = val;
                setState(() {});
              },
              title: Text(n),
              toggleable: true,
              selected: _radioGroupValue == n,
            )
        ],
      ),
    );
  }
}