2016-09-24 8 views
1

Wenn ein Menüelement gedrückt wird, möchte ich den Text eines Labels festlegen, aber ich bekomme die Fehler: "Fehler beim Aufruf < Symbol>" und "Unerwarteter Typ Fehler".Connect IQ unerwarteten Typ Fehler bei der Verwendung von setText

In meinem Menü Delegaten ich habe:

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

} 

die setLongestThrowFunction in meiner View-Klasse befindet und wie folgt aussieht:

function setLongestThrow(msg) { 
    longest_throw_label.setText(msg); 
} 

Es macht keinen Sinn, warum ich eine unerwartetes bekommen Geben Sie einen Fehler ein, wenn ich eine Zeichenfolge durchlasse. Wer sieht etwas, was ich nicht weiß? Vielen Dank.

+0

versuchen, '' 'longest_throw_label.setText (msg.toString())' '' Ich weiß, es sieht dumm aus, und es macht keinen Sinn, aber es kann helfen. –

+0

'Fehler beim Aufruf von ' kann entweder bedeuten, dass Sie versucht haben, eine Methode für ein Null-Objekt aufzurufen, oder Ihre Variable ist nicht der Typ, von dem Sie denken, dass es ist. Drucken Sie den Wert von msg und den Wert von '_view' in verschiedenen Zeilen aus und sehen Sie, was sie sind (sie sollten etwa so aussehen:' Obj: 51') oder welche Zeile abstürzt. Das wird wahrscheinlich deine Frage beantworten. – Aderis

Antwort

1

Ich glaube, das Problem ist nicht mit _view oder die Zeichenfolge an setText übergeben, aber mit longest_throw_label.

Das Problem ist wahrscheinlich, dass Sie _view im Menükonstruktor initialisieren, aber die Ansicht wurde noch nicht angelegt (das System hat _view.onLayout(dc) nicht aufgerufen, da die Ansicht nicht gedrückt wurde).

Verwandte Themen