当一个菜单项被按下时,我想设置标签的文本,但是我得到了错误:“调用失败”和“意外的类型错误”。
在我的菜单委托中,我有:
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位于我的视图类中,如下所示:
function setLongestThrow(msg) {
longest_throw_label.setText(msg);
}这不能解释为什么我在传递字符串时会出现意外的类型错误。有没有人看到我没看到的东西?谢谢。
发布于 2016-12-13 01:51:11
我认为问题不在于_view或传递给setText的字符串,而在于longest_throw_label。
问题可能是您在菜单构造函数中初始化了_view,但视图尚未布局(系统尚未调用_view.onLayout(dc),因为视图尚未推送)。
https://stackoverflow.com/questions/39680036
复制相似问题