热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Raisedbutton后从flutter中的类返回一个值

我正在构建我的第一个应用来计算工作所需的价值。我已经在Python中工作过,但这

我正在构建我的第一个应用来计算工作所需的价值。
我已经在Python中工作过,但这确实有所不同。
我有一个textformfield,可以在其中输入所需的数据。
成功后,我从“ onPress”按钮调用一个类并传递数据。
计算后,我需要将计算出的值显示在文本字段(spev)中。
我如何才能从“ Buisber”类中获取价值回文本字段。
我正在搜索几天,但是找不到它。
我确定我在某处读了它,但听不懂。
这里是剥离的版本:

import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
home: Buis(),));
}
class Buis extends StatelessWidget {
@override
Widget build(BuildContext context) {
String spev = '0';
TextEditingController kapCOntroller= TextEditingController(text: '10.60');
return Scaffold(
appBar: AppBar(
title: Center(
child: Text("Power Outcome"),),body: Center(
child: Container(
decoration: BoxDecoration(
),child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,children: [
SizedBox(height: 20),Column(
mainAxisAlignment: MainAxisAlignment.end,children: [
// Calculate
Center(
child: RaisedButton(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0),side: BorderSide(color: Colors.red)),onpressed: () {
Buisber(
kapController.text);
},color: Colors.blue,textColor: Colors.white,child: Text("Calculate".toUpperCase(),style: TextStyle(fontSize: 14)),// Outcome Spev
Container(
alignment: Alignment(0,0),width: 80,height: 30,decoration: BoxDecoration(
borderRadius: BorderRadius.horizontal(
left: Radius.circular(40),right: Radius.circular(40),border: Border.all(width: 1.0),child: Text(
'$spev',style: TextStyle(
fontSize: 15,SizedBox(height: 10),],);
}
}
class Buisber {
Buisber(kap) {
var kap1 = double.parse(kap);
print(kap1);
var spev = 1.7 * (50 / kap1);
spev = num.parse(spev.toStringAsFixed(2));
//testing (print works)
//how to send back Outcome Spev
print("Spev is " '$spev');
}
}


@Pim,为什么不创建一个函数而不是类,并在Stateful小部件中接收值?然后,您可以像这样刷新状态以更新值,

void main() {
runApp(new Buis());
}
class Buis extends StatefulWidget {
@override
BuisState createState() => BuisState();
}
class BuisState extends State {
var value = '';
@override
Widget build(BuildContext context) {
String spev = '0';
TextEditingController kapCOntroller= TextEditingController(text: '10.60');
return MaterialApp(home: Scaffold(
appBar: AppBar(
title: Center(
child: Text("Power Outcome"),),body: Center(
child: Container(
decoration: BoxDecoration(
),child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,children: [
SizedBox(height: 20),Column(
mainAxisAlignment: MainAxisAlignment.end,children: [
// Calculate
Center(
child: RaisedButton(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0),side: BorderSide(color: Colors.red)),onPressed: () {
value = getValue(kapController.text).toString();
setState(() {});
},color: Colors.blue,textColor: Colors.white,child: Text("Calculate".toUpperCase(),style: TextStyle(fontSize: 14)),// Outcome Spev
Container(
alignment: Alignment(0,0),width: 80,height: 30,decoration: BoxDecoration(
borderRadius: BorderRadius.horizontal(
left: Radius.circular(40),right: Radius.circular(40),border: Border.all(width: 1.0),child: Text(
value.toString(),style: TextStyle(
fontSize: 15,SizedBox(height: 10),],)
);
}
}
// This can be within your BuisState
getValue (kap) {
var kap1 = double.parse(kap);
print(kap1);
var spev = 1.7 * (50 / kap1);
spev = num.parse(spev.toStringAsFixed(2));
//testing (print works)
//how to send back Outcome Spev
print("Spev is " '$spev');
return spev;
}

demo

希望这会有所帮助。


推荐阅读
author-avatar
手机用户2602933613
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有