Connect IQ неожиданный тип Ошибка при использовании setText
При нажатии на пункт меню, я хочу установить текст метки, однако я получаю ошибки: "Неудачный вызов
В моем меню делегат у меня есть:
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 ответ
Я считаю, что проблема не с _view
или строка передана setText
, но с longest_throw_label
,
Вероятно, проблема в том, что вы инициализируете _view
в конструкторе меню, но представление еще не выложено (система не вызывала _view.onLayout(dc)
потому что вид не был выдвинут).