Как добавить операторы к входным значениям текстового поля в флаттере - PullRequest
0 голосов
/ 15 марта 2020

Я новичок в трепетании. Я смотрю, чтобы применить оператор «<=» к значениям поля текстовой формы, например, я хочу проверить минимальные и максимальные значения, которые я должен извлечь из ввода в поле текстовой формы. Но он показывает мне <strong>Оператор '<=' не определен для класса 'TextEditingController'. Попробуйте определить оператор '<=' </strong>. Вот как выглядит мой исходный код:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  int min, max, mid1, mid2, temp;
  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: <Widget>[
            Center(
              child: TextFormField(
                autofocus: true,
                controller: inputvalue1,
                keyboardType: TextInputType.number,
                inputFormatters: <TextInputFormatter>[
                  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: <TextInputFormatter>[
                  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: <TextInputFormatter>[
                  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: <TextInputFormatter>[
                  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: () {},
            ),
            //Text(result),
          ],
        ),
      ),
    );
  }

  void comp() {
    if (inputvalue1 == inputvalue2 ||
        inputvalue1 == inputvalue3 ||
        inputvalue1 == inputvalue4) {
      print('Please input different number');
    } else if (inputvalue2 == inputvalue3 || inputvalue2 == inputvalue4) {
      print('Please input different number');
    } else if (inputvalue3 == inputvalue4) {
      print('Please enter differet vlaues');
    }
    //Finding minimum value
    if (inputvalue1 <= inputvalue2 &&
        inputvalue1 <= inputvalue3 &&
        inputvalue1 <= inputvalue4) {
      min = inputvalue1 as int;
    }
  }
}

1 Ответ

0 голосов
/ 15 марта 2020

проблема заключается в сравнении TextEditingController друг с другом, вместо этого используйте:

inputvalue1.text

, чтобы получить строку, введенную в текстовое поле:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...