连接IQ意外类型错误时,使用setText



当按下菜单项时,我想设置标签的文本,但是我得到错误:"调用失败"one_answers"意外类型错误"。

在我的菜单委托中,我有:

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

这是没有意义的,为什么我会得到一个意外的类型错误,因为我正在传递一个字符串。有人看到我没看到的吗?谢谢。

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

问题可能是你在菜单构造函数中初始化了_view,但是视图还没有被布局(系统还没有调用_view.onLayout(dc),因为视图还没有被推送)。

相关内容

  • 没有找到相关文章