Используйте ввод текстового поля, чтобы получить вывод значения - PullRequest
0 голосов
/ 18 февраля 2019

Я сделал простое текстовое поле с цифровой клавиатурой.Пользователь должен ввести число (для простоты я установил число на сумму = 5).

Если введено = сумма, текст «правильный ответ» будет напечатан на экране.Если пользователь введет! = Сумму, возвращаемый текст будет «неправильным ответом».

Чтобы проверить, правильно ли я правильно понял числа, у меня есть тестовый отпечаток, функции которого верны.

Моя проблемакак преобразовать этот вывод на печать в текст (чтобы он отображался как текст в приложении).

Я думал о проверке и форме, но, поскольку я фактически уже получил правильный печатный ответ, он показываетЯ уже получил правильные значения.Правильно?

Я перепробовал множество вещей, но пока ничего не получалось, поэтому любая помощь приветствуется.Спасибо.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Textfields2',
      home: MyHomeScreen(),
    );
  }
}

class MyHomeScreen extends StatefulWidget {
  @override
  _MyHomeScreenState createState() => _MyHomeScreenState();
}

class _MyHomeScreenState extends State<MyHomeScreen> {
  final int sum = 5;
  String output;
  String enterAnswer;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextField(
              textAlign: TextAlign.center,
              keyboardType: TextInputType.number,
              decoration: InputDecoration(hintText: '?'),
              onChanged: (val) {
                enterAnswer = val;
              },
            ),
            RaisedButton(
                child: Text('Submit Answer'),
                onPressed: () {
                  if (enterAnswer.isNotEmpty) {
                    if (enterAnswer == sum.toString()) {
                      print('Correct'); //INTO TEXT
                    } else {
                      print('Wrong Answer');//INTO TEXT
                    }
                  }
                })
          ],
        ),
      ),
    );
  }
}

1 Ответ

0 голосов
/ 18 февраля 2019

Под RaisedButton добавить Text виджет.Это должно выглядеть примерно так:

Text(output)

, затем замените оператор print() на функцию setState(), обновляющую вывод:

setState(() {output = 'Correct';});

Чтобы не получить ошибку вВо-первых, вам нужно инициализировать выходную переменную, поэтому вместо записи только 1011 *

String output;

write

String output = "";
...