如何在Flutter中初始化文本字段

时间:2019-12-04 05:06:23

标签: flutter dart

我不熟悉flutter,我试图创建一个从用户输入和减量开始的计数器,但是我无法从文本字段中获取整数输入,如何将用户输入初始化为整数然后添加转换为int变量

1 个答案:

答案 0 :(得分:1)

这很简单,我将向您展示一个您可以遵循的示例。

示例:

class HomePage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return new HomePageState();
  }
}

class HomePageState extends State<HomePage> {
  // creating and initilizing a counter variable 
 int _counter = 0;
TextEditingController _controller = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body:  new Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          new TextField(
            controller: _controller,
            decoration: new InputDecoration(labelText: "Enter your number"),
            keyboardType: TextInputType.number,
          ),
          FlatButton(
          onPressed:(){
           _counter = int.parse(_controller.text);
              },
             child: Text('Press Me!'),
            )
        ],
      ));

  }
}

首先,我创建了一个计数器并将其初始化为0,然后创建了一个控制器,该控制器将用于控制TextField。之后,我创建了一个TextField小部件,并将 _controller 传递给它。我使用了控制器,因为我需要从TextField中获取数据,所以我们也是如此。我们通过 _controller.text 从_controller提取了数据,该数据返回一个字符串。尽管我们将计数器创建为整数,但无法将字符串传递给它。因此,我使用 int.parse(_controller.text)将从 _controller 中获取的数据更改为整数,然后将其传递给 _counter < / em>变量。

注意:我已将 keyboardType 指定为 TextInputType.number ,因为我们正在处理您提到的数字。