2016-02-13 2 views
1

Je suis bloqué sur une erreur dans mon application App Inventor 2. J'utilise trois cases à cocher, donc l'utilisateur doit passer des valeurs à un intervalle de temps dans un composant d'horloge.L'opération TimerInterval ne peut pas accepter les arguments: [(1800)] dans App Inventor 2

Les valeurs sont stockées dans une variable sous la forme d'une liste de trois valeurs de milisecondes (par exemple 1600, 1800, 2000). Je vérifie le code quand et quelle case est cochée, puis je la passe à une base de données TinyDB en tant que balise.

Le problème est que, dans Faites-le et sur l'appareil qui exécute l'application, j'obtiens l'erreur suivante comme le suggère le titre.

Voici les blocs de codage que j'ai utilisé jusqu'à présent:

enter image description here

Est-ce que quelqu'un assez aimable pour me diriger à la façon dont la résolution de cette erreur? Est-il possible de transmettre des valeurs à un composant d'horloge via cette logique. J'ai utilisé un listPicker avec succès il y a quelque temps, mais j'en ai besoin avec une mise en page checkBoxes. Merci d'avance pour vos réponses. Pour corriger cette erreur et avant les remarques et suggestions de @ Taifun, j'ai suivi le chemin des variables pour passer des valeurs dans le champ de l'intervalle de temporisation. Pas maintenant si c'est très efficace mais ça marche pour l'instant. Voici les blocs de codage:

enter image description here

Répondre

1

paires de parenthèses comme celle-ci() représentent une liste.

Le TimerInterval de fonctionnement ne peut pas accepter les arguments: [(1800)]

C'est ce que le message d'erreur essaie de vous dire: Vous essayez d'attribuer une liste, qui a l'élément 1800 à l'intérieur, à la propriété TimerInterval d'un composant clock.

Vous devez affecter la valeur directement à la place.

enter image description here

Aussi, vous devriez penser à la valeur par défaut: quelle valeur doit être utilisée, si l'utilisateur n'a pas stocker quoi que ce soit dans TinyDB ... Vous utilisez actuellement une chaîne vide dans la prise valueIfTagNotThere ... Cela n'a pas vraiment de sens ... Une meilleure valeur serait par exemple 1000 ... même pour la partie else dans votre déclaration if-then-else ...

+0

Hi Taifun. Merci pour les remarques. Je vais essayer et voir ce que je reçois. Pendant ce temps, j'ai utilisé une variable avec des valeurs des cases à cocher qui est stockée dans une balise TinyDB. Je ne suis pas sûr que ce soit efficace et fonctionnel, donc toute opinion est la bienvenue. Voir ma modification. – user3244633

+0

il ya beaucoup de possibilités ... et vous avez réussi à supprimer le bloc 'make a list' sans comprendre, pourquoi cette erreur s'est produite ... mais maintenant probablement après ma réponse, vous comprenez? ... btw. dans votre deuxième soution, mieux vaut utiliser une variable locale au lieu d'une variable globale ... – Taifun

+0

Oui, j'ai pensé utiliser une variable locale, mais bien que vous m'ayez montré un exemple d'utilisation avant, je ne suis pas très confiant dans l'utilisation de variables locales. – user3244633