Reputation: 513
I am trying to clear the initial value from and textfield and give new value, when the textfield is empty i am getting this error.
The following FormatException was thrown while calling onChanged:
Invalid number (at character 1)
^
When the exception was thrown, this was the stack:
#0 int._handleFormatError (dart:core-patch/integers_patch.dart:129:7)
#1 int.parse (dart:core-patch/integers_patch.dart:55:14)
Below is my code.
int _currentSliderValue = 1;
TextEditingController sliderController = TextEditingController();
Column(
children: [
Slider(
value: _currentSliderValue.toDouble(),
max: 100,
label: _currentSliderValue.round().toString(),
onChanged: (double value) {
setState(() {
_currentSliderValue = value.toInt();
sliderController.text = _currentSliderValue.toString();
print(_currentSliderValue);
});
},
),
Padding(
padding: const EdgeInsets.all(0.0),
child: TextFormField(
decoration: InputDecoration(
border: OutlineInputBorder(),
),
controller: sliderController,
onChanged: (text) {
setState(() {
_currentSliderValue = int.parse(text);
});
},
),
),
],
)
How to overcome this issue. i don't get any error when i add any values.
Please help me how to fix this. Thanks in advance.
Upvotes: 0
Views: 2065
Reputation: 17732
If you wish to allow only numbers in text field add these codes in textfield
keyboardType: TextInputType.number,
inputFormatters: <TextInputFormatter>[
FilteringTextInputFormatter.digitsOnly,],
As @M.Taha Basiri mentioned the error is because of adding a non integer value in textfield and trying to parse it. You can also add try parse while parsing the text value.
Upvotes: 2
Reputation: 651
This error occurs because the int parser couldn't parse the string you're trying to parse. To fix this you should make sure that the value is correct or use int.tryParse(value)
.
Upvotes: 3