将数据从 TextFormField 传递到 flutter 中的列表中

问题描述 投票:0回答:1

1-我正在编写一个代码,该代码创建一个图表并生成两个变量之间的关系。 2-但我无法将数据存储在 TextEditingController 的列表中

class _HomePageState extends State<HomePage> {
  // final firstnameController = TextEditingController();
  TextEditingController value1 =TextEditingController();
  TextEditingController  value2 =TextEditingController();

  List<Acceleration> data = [
    Acceleration('1', value1  ),
    Acceleration('2', value2),
    Acceleration('3', 40),
    Acceleration('4', 30),
    Acceleration('5', 20),
    Acceleration('june', 33),
    Acceleration('july', 22),
  ];
 

 @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Line Chart speadTimeRelation"),
        centerTitle: true,
        backgroundColor: Colors.green[700],
        // brightness: Brightness.dark,
      ),
      body: GetBuilder<HomeControler>(
        init: HomeControler(),
        builder: (controller) {
          return Column(
            children: [
              TextFormField(
                controller: value1,
              ),


              Container(
                padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 20),
                child: SfCartesianChart(
                  primaryXAxis:const CategoryAxis(),
                  title:const ChartTitle(text: 'speadTimeRelation Analysis'),
                  legend: const Legend(isVisible: true,),
                  tooltipBehavior: TooltipBehavior(enable: true),
                  series: <LineSeries<Acceleration, String>>[
                    LineSeries<Acceleration, String>(
                      dataSource: data,
                      xValueMapper: (Acceleration speadTimeRelation, _) => speadTimeRelation.time,
                      yValueMapper: (Acceleration speadTimeRelation, _) => speadTimeRelation.spead,
                      name: 'speadTimeRelation',
                      dataLabelSettings: const DataLabelSettings(isVisible: true),
                    ),
                  ],
                ),
              ),
            ],
          );
        }
      ),
    );
  }
}


class Acceleration{

  final String time;
  final double spead;

  Acceleration(this.time, this.spead);

}
json flutter flutter-getx textformfield
1个回答
0
投票
     class _HomePageState extends State<HomePage> {
      // final firstnameController = TextEditingController();
      TextEditingController value1 = TextEditingController(text: '0.0');  // initialize a value, 0.0 because Acceleration variable Spead type is double
      TextEditingController value2 = TextEditingController(text: '0.0');

    @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: const Text("Line Chart speadTimeRelation"),
            centerTitle: true,
            backgroundColor: Colors.green[700],
            // brightness: Brightness.dark,
          ),
          body: GetBuilder<HomeControler>(
            init: HomeControler(),
            builder: (controller) {
              return Column(
                children: [
                  TextField(                                  // use TextField then TextFormField, because you don't use a form
                    controller: value1,
                    onChanged: (valueFromController1) {
                      setState(() {                           // setState to rebuild the widget and update the chart
                        value1.text = valueFromController1;
                      });
                    },
                  ),


                  Container(
                    padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 20),
                    child: SfCartesianChart(
                      primaryXAxis:const CategoryAxis(),
                      title:const ChartTitle(text: 'speadTimeRelation Analysis'),
                      legend: const Legend(isVisible: true,),
                      tooltipBehavior: TooltipBehavior(enable: true),
                      series: <LineSeries<Acceleration, String>>[
                        LineSeries<Acceleration, String>(
                          dataSource: [
                            Acceleration('1', double.tryParse(value1.text)),
                            Acceleration('2', double.tryParse(value2.text)),
                            Acceleration('3', 40),
                            Acceleration('4', 30),
                            Acceleration('5', 20),
                            Acceleration('june', 33),
                            Acceleration('july', 22),
                          ],
                          xValueMapper: (Acceleration speadTimeRelation, _) => speadTimeRelation.time,
                          yValueMapper: (Acceleration speadTimeRelation, _) => speadTimeRelation.spead,
                          name: 'speadTimeRelation',
                          dataLabelSettings: const DataLabelSettings(isVisible: true),
                        ),
                      ],
                    ),
                  ),
                ],
              );
            }
          ),
        );
      }
    }


    class Acceleration{

      final String time;
      final double spead;

      Acceleration(this.time, this.spead);

    }
© www.soinside.com 2019 - 2024. All rights reserved.