csdnQXX105 2020-01-20 15:30 采纳率: 20%
浏览 298

如下代码,用RadioListTile列出的几个单选项,当选中一项后如何将选中的值传入到下一页面呢?

enum Location {语文, 数学, 英语, 物理, 化学, 其他}

class SelectLocationWidget extends StatefulWidget {

SelectLocationWidget({Key key}) : super(key: key);

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

class _SelectLocationWidgetState extends State {
Location _location = Location.语文;
final TextEditingController _locationOthersController = new TextEditingController();
@override
Widget build(BuildContext context) {
return Column(
children: [
RadioListTile(
title: const Text('语文'),
value: Location.语文,
groupValue: _location,
onChanged: (Location value) {
setState(() {
_location = value;
});
},
),
RadioListTile(
title: const Text('数学'),
value: Location.数学,
groupValue: _location,
onChanged: (Location value) {
setState(() {
_location = value;
});
},
),
RadioListTile(
title: const Text('英语'),
value: Location.英语,
groupValue: _location,
onChanged: (Location value) {
setState(() {
_location = value;
});
},
),
RadioListTile(
title: const Text('物理'),
value: Location.物理,
groupValue: _location,
onChanged: (Location value) {
setState(() {
_location = value;
});
},
),
RadioListTile(
title: const Text('化学'),
value: Location.化学,
groupValue: _location,
onChanged: (Location value) {
setState(() {
_location = value;
});
},
),
RadioListTile(
title: TextField(
controller: _locationOthersController,
decoration: InputDecoration(
hintText: '其他',
),
),
value: Location.其他,
groupValue: _location,
onChanged: (Location value) {
setState(() {
_location = value;
});
},
),
],
);
}
}

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-26 11:21
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要实现将选中的值从当前页面传递到下一页面的功能,你需要在每一项的onChanged事件中调用一个函数。这个函数应该接受选中的值作为参数,并将其存储在一个变量或对象中。以下是一个示例:

    RadioListTile(
      title: const Text('语文'),
      value: Location.语文,
      groupValue: _location,
      onChanged: (Location value) {
        setState(() {
          // 将选中的值存储到一个变量中
          selectedValue = value;
        });
      },
    ),
    

    在这个例子中,我们创建了一个名为selectedValue的局部变量来存储选中的值。然后,在onChanged事件中,我们将这个变量设置为选中的值。

    当你在下一页面使用相同的RadioListTile组件时,你可以访问selectedValue变量并处理它,就像处理任何其他数据一样。

    请注意,这只是一个基本的例子。根据你的具体需求,你可能需要更复杂的数据结构和处理逻辑。例如,如果你想要将选中的值发送给服务器或其他应用程序,那么你可能需要使用WebSocket或者HTTP请求等技术。

    评论

报告相同问题?