我正在创建一个应用程序,它有一个开始按钮(类StartButton),我希望该按钮调用另一个类(类NewRide)的方法,但是我如何从另一个文件调用void函数呢?
class StartButton extends StatefulWidget{
@override
_StartButtonState createState() => _StartButtonState();
}
class _StartButtonState extends State<StartButton> {
String _driverState = 'offline';
@override
Widget build(context){
return FlatButton(
child: Text('Start'),
onPressed: (){
setState(() {
if (_driverState == 'offline') {
_driverState = 'online';
} else {
_driverState = 'offline';
}
});
},
);
}
}
这是New Ride类,它具有我想在按下开始按钮时调用的空函数。
class NewRide extends StatefulWidget {
@override
_NewRideState createState() => _NewRideState();
}
class _NewRideState extends State<NewRide> {
int _counter = 60;
Timer _timer;
@override
Widget build(BuildContext context) {
void startTimer() {
_counter = 60;
if (_timer != null) {
_timer.cancel();
}
_timer = Timer.periodic(Duration(seconds: 1), (timer) {
setState(() {
if (_counter > 0) {
_counter--;
} else {
_timer.cancel();
}
});
});
}
_showNewRideAlert() {
if (_counter == 0) {
return Text('Counter == 0');
} else {
return Text('Counter != 0');
}
}
return _showNewRideAlert();
}
}
首先将另一个文件/类导入到主类中(我不确定文件的名称)。
import'/纽里德。像纽瑞德一样飞镖
然后像这样调用函数:
newRide._showNewRideAlert();
不过,由于类/状态的设置方式,它可能无法工作(不会构建小部件)。因此,您可能必须将代码移动到可调用的位置,例如类的顶部或将函数实现到使用它的页面中。
使用GlobalKey,将startTimer公之于众,并将NewRideState更改为uNewRidestate
class StartButton extends StatefulWidget {
@override
_StartButtonState createState() => _StartButtonState();
}
class _StartButtonState extends State<StartButton> {
String _driverState = 'offline';
GlobalKey<NewRideState> newRideKey = GlobalKey<NewRideState>();
@override
Widget build(context) {
return Column(
children: [
NewRide(key: newRideKey),
FlatButton(
child: Text('Start'),
onPressed: () {
setState(() {
if (_driverState == 'offline') {
_driverState = 'online';
} else {
_driverState = 'offline';
}
});
},
),
],
);
}
}
class NewRide extends StatefulWidget {
const NewRide({Key key}) : super(key: key);
@override
NewRideState createState() => NewRideState();
}
class NewRideState extends State<NewRide> {
int _counter = 60;
Timer _timer;
@override
Widget build(BuildContext context) {
_showNewRideAlert() {
if (_counter == 0) {
return Text('Counter == 0');
} else {
return Text('Counter != 0');
}
}
return _showNewRideAlert();
}
void startTimer() {
_counter = 60;
if (_timer != null) {
_timer.cancel();
}
_timer = Timer.periodic(Duration(seconds: 1), (timer) {
setState(() {
if (_counter > 0) {
_counter--;
} else {
_timer.cancel();
}
});
});
}
}
问题内容: 抱歉,我确定一个基本问题,但似乎无法弄清楚。 说我有这个程序,文件名为: 如何在另一个程序中调用它?我试过了: 而不是“ hello world”,我得到了……过去我通过将第一个文件设为类来做到这一点,但我想知道如何正确导入该函数?如果有帮助,我会在我的真实文件中打印字典 问题答案: 您需要打印调用函数的结果,而不是函数本身: 另外,您可以省略子句,而不是: 如果更方便,也可以使用:
问题内容: 设置:我需要在程序中使用的每个功能都有一个文件。 在此程序中,我需要从外部文件调用该函数。 我试过了: 但是我得到了错误: ImportError:没有名为“ file.py”的模块;文件不是包 我该如何解决这个问题? 问题答案: 导入时无需添加任何内容。只需编写,然后使用调用函数。之所以可能不起作用,是因为它是Python的核心模块之一,所以我建议你更改文件名。 请注意,如果你尝试将
包含一个名为<code>函数 上面给出了一个错误: 导入错误:没有名为“file.py”的模块;文件不是包
问题内容: 我想调用一个在second.js文件的first.js文件中定义的函数。这两个文件都在HTML文件中定义,例如: 我想打电话给在定义中。根据我的搜索结果,答案是首先定义是否可以,但是根据我的测试,我没有找到任何方法。 这是我的代码: 问题答案: 除非在同一文件中定义了该函数,或者在尝试调用该函数之前已加载了该函数,否则无法调用该函数。 除非函数的范围与尝试调用该函数的范围相同或更大,否
问题内容: 我无法从另一个类Menu.swift调用GameViewController.swift中的函数。我这样调用该函数: 这是我要调用的函数: } 我在菜单类内的GameViewController.showLeaderboard()行中出现编译器错误“调用中的参数#1缺少参数”,但我不理解编译器期望的参数类型,因为我不需要任何声明就声明了该函数参数。 谢谢 问题答案: 在您定义为方法而不
我正在尝试创建一个21点模拟器。在向玩家和庄家发牌之前,我需要洗牌。是一个无效函数,是类中的卡类型。职业存储从职业中发出的牌。在游戏开始时,我需要向玩家和庄家发两张牌。当我尝试在类访问 的成员函数时,我收到错误消息“调用不带对象参数的非静态成员函数”。调用成员函数的正确方法是什么?我真的对语法感到困惑。