使用setText

时间:2016-09-24 19:16:10

标签: garmin connectiq monkeyc

当按下菜单项时,我想设置标签的文本,但是我收到错误:“调用失败<符号>”和“意外类型错误”。

在我的菜单代表中,我有:

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);
}

因为我正在通过一个字符串,所以我得到一个意外的类型错误是没有意义的。有人看到我没有的东西吗?感谢。

1 个答案:

答案 0 :(得分:1)

我认为问题不在于_view或传递给setText的字符串,而在于longest_throw_label

问题可能是您在菜单构造函数中初始化_view,但视图尚未布局(系统未调用_view.onLayout(dc),因为视图尚未推送)