当按下菜单项时,我想设置标签的文本,但是我收到错误:“调用失败<符号>”和“意外类型错误”。
在我的菜单代表中,我有:
using Toybox.WatchUi as Ui;
using Toybox.System as Sys;
using Toybox.Position as Position;
class DiscGolfMenuDelegate extends Ui.MenuInputDelegate {
var _view;
function initialize() {
MenuInputDelegate.initialize();
_view = new DiscGolfView();
}
function onMenuItem(item) {
if (item == :measure_throw) {
Sys.println("item 1");
_view.setLongestThrow("yeet");
} else if (item == :start_game) {
Sys.println("item 2");
}
}
}
setLongestThrowFunction位于我的View类中,如下所示:
function setLongestThrow(msg) {
longest_throw_label.setText(msg);
}
因为我正在通过一个字符串,所以我得到一个意外的类型错误是没有意义的。有人看到我没有的东西吗?感谢。
答案 0 :(得分:1)
我认为问题不在于_view
或传递给setText
的字符串,而在于longest_throw_label
。
问题可能是您在菜单构造函数中初始化_view
,但视图尚未布局(系统未调用_view.onLayout(dc)
,因为视图尚未推送)