如何在颤振中获取控制器的单选按钮数据?

时间:2020-10-18 19:27:58

标签: list flutter dart controller radio-button

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

final quantNumberController = TextEditingController();

我正在从控制者那里获得价值;

String quant = quantNumberController.text;

然后我将数据存储为json格式,例如;

var data = {'quant': quant}

我当前的文本小部件容器结构是;

          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';
                        });
                      },
                    ),
                  ),
                ],
              ) ,
          ),

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以定义一个带有控制器的功能

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

并在需要的地方使用它

   Radio(
       value:quantNumberController.text//or anything you want instead of text 

但是,如果小部件在其构造函数中不支持控制器,那将很复杂