Flutter – dugme i polje za tekst

Napraviti aplikaciju koja učitava brojeve u polje za tekst. BRojevi su razdvojeni zapetom. Dodati i dugme na kojem piše “Pronađi najveći broj”. Kada korisnik pritisne dugme, u drugom polju za tekst se prikazuje najveći broj.

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Najveci broj',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MaxFinderScreen(),
    );
  }
}

class MaxFinderScreen extends StatefulWidget {
  @override
  _MaxFinderScreenState createState() => _MaxFinderScreenState();
}

class _MaxFinderScreenState extends State<MaxFinderScreen> {
  final TextEditingController _numbersController = TextEditingController();
  final TextEditingController _resultController = TextEditingController();

  void _findMaxNumber() {
    String input = _numbersController.text;
    try {
      List<int> numbers = input
          .split(',')
          .map((e) => int.parse(e.trim()))
          .toList();
      int maxNumber = numbers.reduce((a, b) => a > b ? a : b);
      _resultController.text = maxNumber.toString();
    } catch (e) {
      _resultController.text = 'Neispravni ulazni podaci';
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Najveci broj'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            TextField(
              controller: _numbersController,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Unesite brojeve (razdvojite zapetom)',
              ),
              keyboardType: TextInputType.number,
            ),
            SizedBox(height: 16),
            ElevatedButton(
              onPressed: _findMaxNumber,
              child: Text('Pronadji najveci broj'),
            ),
            SizedBox(height: 16),
            TextField(
              controller: _resultController,
              readOnly: true,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Najveci broj',
              ),
            ),
          ],
        ),
      ),
    );
  }
}