title: type 'TextEditingController' is not a subtype of type 'int' in type cast
body: <p>I am trying to take 4 inputs from the user to show the minimum, maximum values and to show mid 1 value and mid 2 value. Now the fact is that whenever I try to take input to perform an action on it to display my answer. It shows "type 'TextEditingController' is not a subtype of type 'int' in typecast". I used the int.parse() method to convert it into a string but still didn't work. 
  This is my code:</p>
  
  <pre><code>import 'package:flutter/material.dart';
  import 'package:flutter/services.dart';
  import 'package:inputtext/convert.dart';
  
  class HomePage extends StatefulWidget {
    @override
    _HomePageState createState() =&gt; _HomePageState();
  }
  
  class _HomePageState extends State&lt;HomePage&gt; {
    int min, max, mid1, mid2, temp;
    String output = '';
    TextEditingController inputvalue1 = new TextEditingController();
    TextEditingController inputvalue2 = new TextEditingController();
    TextEditingController inputvalue3 = new TextEditingController();
    TextEditingController inputvalue4 = new TextEditingController();
    // @override
    // void initState() {
    //   super.initState();
    //   inputvalues = new TextEditingController();
    //   inputvalues.text = '';
    // }
  
    @override
    Widget build(BuildContext context) {
      return Scaffold(
        appBar: AppBar(
          title: Text(
            'InputValue',
            style: TextStyle(
              color: Colors.white,
            ),
          ),
        ),
        body: Container(
          color: Colors.blueAccent[50],
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: &lt;Widget&gt;[
              SizedBox(
                height: 5,
              ),
              Flexible(
                flex: 1,
                child: TextFormField(
                  autofocus: true,
                  controller: inputvalue1,
                  keyboardType: TextInputType.number,
                  inputFormatters: &lt;TextInputFormatter&gt;[
                    WhitelistingTextInputFormatter.digitsOnly,
                  ],
                  decoration: InputDecoration(
                    hoverColor: Colors.blueGrey,
                    border: OutlineInputBorder(
                      borderRadius: BorderRadius.all(
                        Radius.circular(4.0),
                      ),
                    ),
                    labelText: 'Enter Values',
                  ),
                ),
              ),
              SizedBox(height: 10),
              Center(
                child: TextFormField(
                  autofocus: true,
                  controller: inputvalue2,
                  keyboardType: TextInputType.number,
                  inputFormatters: &lt;TextInputFormatter&gt;[
                    WhitelistingTextInputFormatter.digitsOnly,
                  ],
                  decoration: InputDecoration(
                    hoverColor: Colors.blueGrey,
                    border: OutlineInputBorder(
                      borderRadius: BorderRadius.all(
                        Radius.circular(4.0),
                      ),
                    ),
                    labelText: 'Enter Values',
                  ),
                ),
              ),
              SizedBox(height: 10),
              Center(
                child: TextFormField(
                  autofocus: true,
                  controller: inputvalue3,
                  keyboardType: TextInputType.number,
                  inputFormatters: &lt;TextInputFormatter&gt;[
                    WhitelistingTextInputFormatter.digitsOnly,
                  ],
                  decoration: InputDecoration(
                    hoverColor: Colors.blueGrey,
                    border: OutlineInputBorder(
                      borderRadius: BorderRadius.all(
                        Radius.circular(4.0),
                      ),
                    ),
                    labelText: 'Enter Values',
                  ),
                ),
              ),
              SizedBox(height: 10),
              Center(
                child: TextFormField(
                  //validator: (),
                  autofocus: true,
                  controller: inputvalue4,
  
                  keyboardType: TextInputType.number,
                  inputFormatters: &lt;TextInputFormatter&gt;[
                    WhitelistingTextInputFormatter.digitsOnly,
                  ],
                  decoration: InputDecoration(
                    hoverColor: Colors.blueGrey,
                    border: OutlineInputBorder(
                      borderRadius: BorderRadius.all(
                        Radius.circular(4.0),
                      ),
                    ),
                    labelText: 'Enter Values',
                  ),
                ),
              ),
              SizedBox(height: 10),
  
              RaisedButton(
                child: Text(
                  'Submit',
                  style: TextStyle(color: Colors.blue),
                ),
                onPressed: () {
                  comp();
                },
              ),
              SizedBox(
                height: 10,
              ),
              RaisedButton(
                onPressed: () {
                  Navigator.push(
                    context,
                    MaterialPageRoute(builder: (context) =&gt; Convert()),
                  );
                },
                child: Text(
                  'Next',
                  style: TextStyle(color: Colors.blue),
                ),
              ),
  
              //Text(result),
            ],
          ),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: () {
            return showDialog(
              context: context,
              barrierDismissible: true,
              builder: (context) {
                return SimpleDialog(
                  title: Text("Values"),
                  // content: TextField(controller: inputvalue1),
                  children: &lt;Widget&gt;[
                    SimpleDialogOption(
                      onPressed: () {
                        setState(() {
                          print('Minimum Value= ' + min.toString());
                        });
                      },
                    ),
                  ],
                );
              },
            );
  
            // setState(() {
            //   print('Minimum Value=' + min.toString());
            //   print('Maximum Value=' + max.toString());
            //   print('Mid1=' + mid1.toString());
            //   print('Mid2 =' + mid2.toString());
            // });
            // Navigator.of(context).pop();
          },
        ),
      );
    }
  
    void comp() {
      if (inputvalue1.text.toString() == inputvalue2.text.toString() ||
          inputvalue1.text.toString() == inputvalue3.text.toString() ||
          inputvalue1.text.toString() == inputvalue4.text.toString()) {
        print('Please input different number');
      } else if (inputvalue2.text.toString() == inputvalue3.text.toString() ||
          inputvalue2.text.toString() == inputvalue4.text.toString()) {
        print('Please input different number');
      } else if (inputvalue3.text.toString() == inputvalue4.text.toString()) {
        print('Please enter differet vlaues');
      }
      //Finding minimum value
      if (int.parse(inputvalue1.text) &lt;= int.parse(inputvalue2.text) &amp;&amp;
          int.parse(inputvalue1.text) &lt;= int.parse(inputvalue3.text) &amp;&amp;
          int.parse(inputvalue1.text) &lt;= int.parse(inputvalue4.text)) {
        min = inputvalue1 as int;
      } else if (int.parse(inputvalue2.text) &lt;= int.parse(inputvalue3.text) &amp;&amp;
          int.parse(inputvalue2.text) &lt;= int.parse(inputvalue4.text)) {
        min = inputvalue2 as int;
      } else if (int.parse(inputvalue3.text) &lt;= int.parse(inputvalue4.text)) {
        min = inputvalue3 as int;
      } else {
        min = inputvalue4 as int;
      }
      //finding maximum number
      if (int.parse(inputvalue1.text) &gt;= int.parse(inputvalue2.text) &amp;&amp;
          int.parse(inputvalue1.text) &gt;= int.parse(inputvalue2.text) &amp;&amp;
          int.parse(inputvalue1.text) &gt;= int.parse(inputvalue3.text) &amp;&amp;
          int.parse(inputvalue1.text) &gt;= int.parse(inputvalue4.text)) {
        max = inputvalue1 as int;
      } else if (int.parse(inputvalue2.text) &gt;= int.parse(inputvalue3.text) &amp;&amp;
          int.parse(inputvalue2.text) &gt;= int.parse(inputvalue4.text)) {
        max = inputvalue2 as int;
      } else if (int.parse(inputvalue3.text) &gt;= int.parse(inputvalue4.text)) {
        max = inputvalue3 as int;
      } else {
        max = inputvalue4 as int;
      }
      //finding mid1
      if (int.parse(inputvalue1.text) != min &amp;&amp;
          int.parse(inputvalue1.text) != max) {
        mid1 = inputvalue1 as int;
      } else if (int.parse(inputvalue2.text) != min &amp;&amp;
          int.parse(inputvalue2.text) != max) {
        mid1 = inputvalue2 as int;
      } else if (int.parse(inputvalue3.text) != min &amp;&amp;
          int.parse(inputvalue3.text) != max) {
        mid1 = inputvalue3 as int;
      } else if (int.parse(inputvalue4.text) != min &amp;&amp;
          int.parse(inputvalue4.text) != max) {
        mid1 = inputvalue4 as int;
      }
  
      //finding mid2
      if (int.parse(inputvalue1.text) != mid1 &amp;&amp;
          int.parse(inputvalue1.text) != min &amp;&amp;
          int.parse(inputvalue1.text) != max) {
        mid2 = inputvalue1 as int;
      } else if (int.parse(inputvalue2.text) != mid1 &amp;&amp;
          int.parse(inputvalue2.text) != min &amp;&amp;
          int.parse(inputvalue2.text) != max) {
        mid2 = inputvalue2 as int;
      } else if (int.parse(inputvalue3.text) != mid1 &amp;&amp;
          int.parse(inputvalue3.text) != min &amp;&amp;
          int.parse(inputvalue3.text) != max) {
        mid2 = inputvalue3 as int;
      } else if (int.parse(inputvalue4.text) != mid1 &amp;&amp;
          int.parse(inputvalue4.text) != min &amp;&amp;
          int.parse(inputvalue4.text) != max) {
        mid2 = inputvalue4 as int;
      }
      if (mid1 &gt; mid2) {
        temp = mid1;
        mid1 = mid2;
        mid2 = temp;
      }
    }
  }
  </code></pre>
  
  <p>Appreciate your answer</p>
  
  <p><strong>Error log</strong></p>
  
  <pre><code>══╡ EXCEPTION CAUGHT BY FOUNDATION LIBRARY ╞════════════════════════════════════════════════════════
  I/flutter ( 5462): The following assertion was thrown while dispatching notifications for FocusNode:
  I/flutter ( 5462): RenderBox was not laid out: RenderEditable#cd6b6 NEEDS-LAYOUT NEEDS-PAINT
  I/flutter ( 5462): 'package:flutter/src/rendering/box.dart':
  I/flutter ( 5462): Failed assertion: line 1687 pos 12: 'hasSize'
  I/flutter ( 5462):
  I/flutter ( 5462): Either the assertion indicates an error in the framework itself, or we should provide substantially
  I/flutter ( 5462): more information in this error message to help you determine and fix the underlying cause.
  I/flutter ( 5462): In either case, please report this assertion by filing a bug on GitHub:
  I/flutter ( 5462):   https://github.com/flutter/flutter/issues/new?template=BUG.md
  I/flutter ( 5462):
  I/flutter ( 5462): When the exception was thrown, this was the stack:
  I/flutter ( 5462): #2      RenderBox.size 
  package:flutter/…/rendering/box.dart:1687
  I/flutter ( 5462): #3      EditableTextState._updateSizeAndTransform 
  package:flutter/…/widgets/editable_text.dart:1729
  I/flutter ( 5462): #4      EditableTextState._openInputConnection 
  package:flutter/…/widgets/editable_text.dart:1415
  I/flutter ( 5462): #5      EditableTextState._openOrCloseInputConnectionIfNeeded 
  package:flutter/…/widgets/editable_text.dart:1441
  I/flutter ( 5462): #6      EditableTextState._handleFocusChanged 
  package:flutter/…/widgets/editable_text.dart:1707
  I/flutter ( 5462): #7      ChangeNotifier.notifyListeners 
  package:flutter/…/foundation/change_notifier.dart:206
  I/flutter ( 5462): #8      FocusNode._notify 
  package:flutter/…/widgets/focus_manager.dart:825
  I/flutter ( 5462): #9      FocusManager._applyFocusChange 
  package:flutter/…/widgets/focus_manager.dart:1456
  I/flutter ( 5462): (elided 12 frames from class _AssertionError and package dart:async)
  I/flutter ( 5462):
  I/flutter ( 5462): The FocusNode sending notification was:
  I/flutter ( 5462):   FocusNode#bbc92
  I/flutter ( 5462): ════════════════════════════════════════════════════════════════════════════════════════════════════
  
   Exception caught by gesture ═══════════════════════════════════════════
  The following _CastError was thrown while handling a gesture:
  type 'TextEditingController' is not a subtype of type 'int' in type cast
  
  When the exception was thrown, this was the stack
  #0      _HomePageState.comp 
  package:inputtext/homepage.dart:213
  #1      _HomePageState.build.&lt;anonymous closure&gt; 
  package:inputtext/homepage.dart:133
  #2      _InkResponseState._handleTap 
  package:flutter/…/material/ink_well.dart:706
  #3      _InkResponseState.build.&lt;anonymous closure&gt; 
  package:flutter/…/material/ink_well.dart:789
  #4      GestureRecognizer.invokeCallback 
  package:flutter/…/gestures/recognizer.dart:182
  ...
  Handler: "onTap"
  Recognizer: TapGestureRecognizer#e5be9
      debugOwner: GestureDetector
      state: possible
      won arena
      finalPosition: Offset(212.6, 351.2)
      finalLocalPosition: Offset(50.8, 5.9)
      button: 1
      sent tap down
  ════════════════════════════════════════════════════════════════════════════════
  
  ════════ Exception caught by gesture ═══════════════════════════════════════════
  type 'TextEditingController' is not a subtype of type 'int' in type cast
  ════════════════════════════════════════════════════════════════════════════════
  Reloaded 2 of 480 libraries in 585ms.
  Reloaded 2 of 480 libraries in 262ms.
  
  ════════ Exception caught by gesture ═══════════════════════════════════════════
  The following _CastError was thrown while handling a gesture:
  type 'TextEditingController' is not a subtype of type 'int' in type cast
  
  When the exception was thrown, this was the stack
  #0      _HomePageState.comp 
  package:inputtext/homepage.dart:210
  #1      _HomePageState.build.&lt;anonymous closure&gt; 
  package:inputtext/homepage.dart:133
  #2      _InkResponseState._handleTap 
  package:flutter/…/material/ink_well.dart:706
  #3      _InkResponseState.build.&lt;anonymous closure&gt; 
  package:flutter/…/material/ink_well.dart:789
  #4      GestureRecognizer.invokeCallback                         package:flutter/…/gestures/recognizer.dart:182
  ...
  Handler: "onTap"
  Recognizer: TapGestureRecognizer#e5be9
      debugOwner: GestureDetector
      state: possible
      won arena
      finalPosition: Offset(201.1, 369.1)
      finalLocalPosition: Offset(39.4, 23.8)
      button: 1
      sent tap down
  ════════════════════════════════════════════════════════════════════════════════
  Reloaded 2 of 480 libraries in 2,487ms.
  
  ════════ Exception caught by gesture ═══════════════════════════════════════════
  The following _CastError was thrown while handling a gesture:
  type 'TextEditingController' is not a subtype of type 'int' in type cast
  
  When the exception was thrown, this was the stack
  #0      _HomePageState.comp 
  package:inputtext/homepage.dart:210
  #1      _HomePageState.build.&lt;anonymous closure&gt; 
  package:inputtext/homepage.dart:133
  #2      _InkResponseState._handleTap 
  package:flutter/…/material/ink_well.dart:706
  #3      _InkResponseState.build.&lt;anonymous closure&gt; 
  package:flutter/…/material/ink_well.dart:789
  #4      GestureRecognizer.invokeCallback 
  package:flutter/…/gestures/recognizer.dart:182
  ...
  Handler: "onTap"
  Recognizer: TapGestureRecognizer#e5be9
      debugOwner: GestureDetector
      state: possible
      won arena
      finalPosition: Offset(220.2, 368.0)
      finalLocalPosition: Offset(58.5, 22.6)
      button: 1
      sent tap down
  ════════════════════════════════════════════════════════════════════════════════
  
  ════════ Exception caught by gesture ═══════════════════════════════════════════
  type 'TextEditingController' is not a subtype of type 'int' in type cast
  ════════════════════════════════════════════════════════════════════════════════
  
  ════════ Exception caught by gesture ═══════════════════════════════════════════
  type 'TextEditingController' is not a subtype of type 'int' in type cast
  ════════════════════════════════════════════════════════════════════════════════
  
  ════════ Exception caught by gesture ═══════════════════════════════════════════
  type 'TextEditingController' is not a subtype of type 'int' in type cast
  </code></pre>