1

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

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

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

当我通过一个字符串时,为什么我会得到一个意外的类型错误是没有意义的。有人看到我看不到的东西吗?谢谢。

4

1 回答 1

2

我相信问题不在于_view或传递给的字符串setText,而在于longest_throw_label.

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

于 2016-12-12T17:51:11.193 回答