Exception was thrown: FormatException: Invalid radix-10 number

yash javeri picture yash javeri · Jul 21, 2018 · Viewed 15.2k times · Source

I get this error when try to get an integer from TextFormFeild. I have used this widget many times but I did not get this error anytime. Does anybody know what it exactly means?

It will be a great help. The following is just a part of entire (1084 lines)code where I feel the error could be: (Also I have initialized the controller:'bowlerIndexController = new TextEditingController(text: "");':/)....

 void changeBowler(BuildContext context) {
showDialog(
    context: context,
    builder: (context) {
      return new SimpleDialog(
        title: new Text("Who is bowling next?",
            style:
                new TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold)),
        children: <Widget>[
          new Column(
            children: List<Widget>.generate(teamBowling.length, (index) {
              return Padding(
                padding: const EdgeInsets.all(8.0),
                child: new Row(
                  children: <Widget>[
                    new Padding(
                      padding: new EdgeInsets.all(2.0),
                      child: new Text(
                        (index + 1).toString(),
                        style: new TextStyle(fontSize: 15.0),
                      ),
                    ),
                    new Text(teamBowling[index].player["Name"],
                        style: new TextStyle(
                            fontSize: 18.0, fontWeight: FontWeight.bold))
                  ],
                ),
              );
            }),
          ),
          new TextFormField(
            keyboardType: new TextInputType.numberWithOptions(
                signed: false, decimal: false),
            decoration: new InputDecoration(
                hintText: "Enter the bowler's corresponding number"),
            controller: bowlerIndexController,
          ),
          new RaisedButton(
              child: new Text(
                "DONE",
                style: new TextStyle(color: Colors.black),
              ),
              onPressed: () {
                int a =
                    int.parse(bowlerIndexController.text.toString()) - 2;
                if (a >= 0 && a < teamBowling.length) {
                  bowlerIndex = int.parse(bowlerIndexController.toString());
                  Navigator.pop(context);
                }
              })
        ],
      );
    });
  }

Answer

yash javeri picture yash javeri · Jul 21, 2018

The mistake was stupid. 🤷‍♀️ I did not convert the controller to text. I directly did from controller ==> String. I am keeping this question just in case anybody else has a similar query. 😜