flutter 我怎样才能在控制器处于抖动状态时获得单选按钮数据?

5q4ezhmt  于 2022-12-14  发布在  Flutter
关注(0)|答案(2)|浏览(125)

我创建了一个小部件,它通过一个json格式的API发送数据,使用如下控制器构建;

final quantNumberController = TextEditingController();

并且我从控制器获得值;

String quant = quantNumberController.text;

并且我以json格式存储数据,如;

var data = {'quant': quant}

我当前的文本widget容器结构是这样的;

Container(
              width: 280,
              padding: EdgeInsets.all(10.0),
              child: TextField(
                controller: quantNumberController,
                autocorrect: true,
                decoration: InputDecoration(hintText: 'Enter location'),
              )
          ),

我想在单选按钮结构中得到这个数据。是否可以像以前那样用控制器得到数据,或者我应该如何把数据放到我的结果json文件中?
我试过这样;

Container(
              margin: EdgeInsets.fromLTRB(0, 0, 0, 10),
              child: Column(
                children: <Widget>[
                  Text('Location'),
                  ListTile(
                    title: const Text('First value'),
                    leading: Radio(
                      value: Cap.Cap33,
                      groupValue: _capp,
                      onChanged: (Capp value) {
                        setState(() {
                          _capp = value;
                          capp = 'Cap33';
                        });
                      },
                    ),
                  ),
                  ListTile(
                    title: const Text('Second value'),
                    leading: Radio(
                      value: Capp.Cap22,
                      groupValue: _capp,
                      onChanged: (Capp value) {
                        setState(() {
                          _capp = value;
                          capp = 'Cap22';
                        });
                      },
                    ),
                  ),
                  ListTile(
                    title: const Text('Third value'),
                    leading: Radio(
                      value: Capp.Cap44,
                      groupValue: _capp,
                      onChanged: (Capp value) {
                        setState(() {
                          _capp = value;
                          capp = 'Cap44';
                        });
                      },
                    ),
                  ),
                ],
              ) ,
          ),
  • 谢谢-谢谢
4nkexdtk

4nkexdtk1#

您可以定义一个函数,它使用控制器

widget myRadioButton(TextEditingController quantNumberController ){
                  return Radio(
                      value:quantNumberController.text
                      groupValue: _capp,
                      onChanged: (Capp value) {
                        setState(() {
                          _capp = value;
                          capp = 'Cap33';
                        });}

用于使用

Container(
  child:myRadioButton (quantNumberController:quantNumberController) 
  )
x8diyxa7

x8diyxa72#

您可以使用类似“位置值”语法的变量-

late String LocationValue = '';

@override小部件构建之前(BuildContext上下文)
然后在更改属性单选按钮上分配LocationValue

onChanged: ((value) {
            LocationValue = 'cap33';
            setState(() {
            _value = value!;
            });
            }),

相关问题