Flutter 在Dart/Flatter中,如何使用方法中的变量,以便将其输出到文本字段
希望有人能帮上忙——几周前我遇到了这个死胡同,我认为我已经在有限的知识范围内尝试了一切 我已经建立了一个工作正常的数据库——也就是说,我可以在一个屏幕上添加数据,查看数据,并在另一个屏幕上编辑数据。现在,我想将我在“debugPrint”中验证过的一列(beef)汇总到控制台。我想从“sumbef”方法访问这个变量“beefTotal”,并在UI的文本字段中打印和显示它。不过我就是没办法。它只返回null 提前感谢您的帮助Flutter 在Dart/Flatter中,如何使用方法中的变量,以便将其输出到文本字段,flutter,methods,dart,Flutter,Methods,Dart,希望有人能帮上忙——几周前我遇到了这个死胡同,我认为我已经在有限的知识范围内尝试了一切 我已经建立了一个工作正常的数据库——也就是说,我可以在一个屏幕上添加数据,查看数据,并在另一个屏幕上编辑数据。现在,我想将我在“debugPrint”中验证过的一列(beef)汇总到控制台。我想从“sumbef”方法访问这个变量“beefTotal”,并在UI的文本字段中打印和显示它。不过我就是没办法。它只返回null 提前感谢您的帮助 import 'package:flutter/material.dar
import 'package:flutter/material.dart';
import 'package:take_note/utils/database_helper.dart';
class Info extends StatefulWidget {
@override
State<StatefulWidget> createState() => _InfoState();
}
DatabaseHelper helper = DatabaseHelper();
var database = DatabaseHelper();
class _InfoState extends State<Info> {
List beefTotal;
@override
Widget build (BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Beef Info"),
backgroundColor: Colors.lightBlueAccent,
),
body: Container(
child: Column(
children: <Widget>[
Expanded(
child: Center(
child: RaisedButton(
onPressed: (){
sumBeef();
},
),
),
),
Expanded(
child: Center(
child: Text("Total Beef is: £ $beefTotal", style: TextStyle(
color: Colors.lightBlueAccent,
fontSize: 30.0,
fontWeight: FontWeight.w400
),),
),
),
],
),
)
);
}
void sumBeef () async {
beefTotal = await database.addBeef();
debugPrint("Total beef: $beefTotal");
}
}
导入“包装:颤振/材料.省道”;
导入“package:take_note/utils/database_helper.dart”;
类信息扩展StatefulWidget{
@凌驾
State createState()=>\u InfoState();
}
DatabaseHelper=DatabaseHelper();
var database=DatabaseHelper();
类InfoState扩展了状态{
列出啤酒总量;
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“牛肉信息”),
背景颜色:Colors.lightBlueAccent,
),
主体:容器(
子:列(
儿童:[
扩大(
儿童:中心(
孩子:升起按钮(
已按下:(){
苏木牛肉();
},
),
),
),
扩大(
儿童:中心(
孩子:文本(“牛肉总量为:$beefTotal”),样式:文本样式(
颜色:Colors.lightBlueAccent,
字体大小:30.0,
fontWeight:fontWeight.w400
),),
),
),
],
),
)
);
}
void sumBeef()异步{
beefTotal=await database.addBeef();
debugPrint(“全部牛肉:$beefTotal”);
}
}
下面的代码来自一个名为DatabaseHelper的类,方法sumBeef()使用该类
Future addBeef()异步{
Database db=等待此数据库;
var result=await db.rawQuery(“从$table中选择总和(牛肉”);
返回结果;
}
```[在此处输入图像描述][1]
[1]: https://i.stack.imgur.com/L46Gj.png
只要打电话
设定状态({
}))
祝你好运!无论何时进行更改,都必须调用setState方法来更新颤振情况下的ui(重建)您真是个天才!谢谢。如果不太麻烦的话,最后一个问题是——现在的产出是‘牛肉总量是:£【{SUM(牛肉):205.0}】。我怎么才能拿到205.0英镑呢?您的SQL查询有问题,您想执行db.rawQuery(“选择SUM(beef)as cash FROM$table”);然后,您需要从结果中获取var cash:)将结果分配给新的var beefRow=wait database.addBeef();然后使用beefTotal=beefRow[“cash”].toString();抱歉,我不完全理解您的答案-我做了以下操作:void sumbefee()异步{beefTotal=await database.addBeef();var beefRow=await database.addBeef();beefTotal=beefRow[“cash”].toString();setState((){});debugPrint(“总牛肉:$beefTotal”);}
Future<List<Map<String, dynamic>>> addBeef()async{
Database db = await this.database;
var result = await db.rawQuery("SELECT SUM(beef) FROM $table");
return result;
}
```[enter image description here][1]
[1]: https://i.stack.imgur.com/L46Gj.png
void sumBeef () async {
beefTotal = await database.addBeef();
setState(() {});
debugPrint("Total beef: $beefTotal");
}