Open name27 opened 1 year ago
import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatefulWidget { const MyApp({super.key}); @override State<MyApp> createState() => _MyAppState(); } class _MyAppState extends State<MyApp> { TextEditingController inputController_x = TextEditingController(); TextEditingController inputController_y = TextEditingController(); var result; double add(var x, var y) { return double.parse(x) + double.parse(y); } double sub(var x, var y) { return double.parse(x) - double.parse(y);; } double mul(var x, var y) { return double.parse(x) * double.parse(y); } double div(var x, var y) { return double.parse(x) / double.parse(y); } showResultDialog(BuildContext context, var result) { showDialog( context: context, builder: (context) { return Dialog( shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.0)), child: SizedBox( width: MediaQuery.of(context).size.width / 2, height: 150, child: Center( child: Text( "$result", style: const TextStyle(fontWeight: FontWeight.bold), )), ), ); }, ); } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('사칙연산'), centerTitle: true, ), body: Center( child: SingleChildScrollView( child: Column( mainAxisSize: MainAxisSize.min, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ Text('X의 값은?'), SizedBox( width: 250, child: TextField( controller: inputController_x, decoration: InputDecoration( hintText: 'x값을 입력하세요.', enabledBorder: OutlineInputBorder( borderSide: BorderSide( color: Colors.black54, width: 0.5, ), ), ), keyboardType: TextInputType.number, ), ) ], ), Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ Text('Y의 값은?'), SizedBox( width: 250, child: TextField( controller: inputController_y, decoration: InputDecoration( hintText: 'Y값을 입력하세요.', enabledBorder: OutlineInputBorder( borderSide: BorderSide( color: Colors.black54, width: 0.5, ), ), ), keyboardType: TextInputType.number, ), ) ], ), SizedBox( height: 10, ), Builder( builder: (context) { return ElevatedButton( onPressed: () { if(inputController_x.text == '' || inputController_y.text == ''){ result = "x 또는 y를 입력하지 않았습니다."; } else{ result = add(inputController_x.text, inputController_y.text); } showResultDialog(context, result); }, child: Text('더하기의 결과값은?'), ); } ), Builder( builder: (context) { return ElevatedButton( onPressed: () { if(inputController_x.text == '' || inputController_y.text == ''){ result = "x 또는 y를 입력하지 않았습니다."; } else{ result = sub(inputController_x.text, inputController_y.text); } showResultDialog(context, result); }, child: Text('빼기의 결과값은?'), ); } ), Builder( builder: (context) { return ElevatedButton( onPressed: () { if(inputController_x.text == '' || inputController_y.text == ''){ result = "x 또는 y를 입력하지 않았습니다."; } else{ result = mul(inputController_x.text, inputController_y.text); } showResultDialog(context, result); }, child: Text('곱하기의 결과값은?'), ); } ), Builder( builder: (context) { return ElevatedButton( onPressed: () { if(inputController_x.text == '' || inputController_y.text == ''){ result = "x 또는 y를 입력하지 않았습니다."; } else{ result = div(inputController_x.text, inputController_y.text); } showResultDialog(context, result); }, child: Text('나누기의 결과값은?'), ); } ), ], ), ), ), ), ); } }
showResultDialog(BuildContext context, var result) 첫번째 인자 해결방법
문자열 더블형으로 바꾸기
Textfield 값 받기
Textfield 꾸미기