2014-12-18 6 views
0

У меня возникла проблема с использованием TinyWebDB в App Inventor 2. Вот скриншот блочного кода.App Inventor TinyWebDB List Problems

Blockcode Screenshot

Цель этого экрана, чтобы сохранить список (массив) изображений, а затем запросить их с помощью кнопки, но моя проблема начинается уже раньше. Сначала есть переменная, инициализируемая именем fotoList и объявленная как пустой список.

Когда этот экран инициализируется (левый блок), я сохраняю пустой файл-лист под тегом FotoListTag. Тогда, если изображение под тегом «SteckbriefFoto» отсутствует в этом списке -> getValue с тегом «FotoListTag». Затем он прыгает в блок справа и добавляет фотографию. Другие вещи не важны. В конце я сохраняю список снова в TinyWebDB (а также в TinyDB) с тегом «FotoListTag». Затем он возвращается к блоку слева, где в конце я хочу установить изображение.picture на фотографию, которую я сохранил в переменной fotoList.

Когда я компиляции кода есть ошибка при открытии страницы, которая говорит

Select list item: List index too large 
Select list item: Attempt to get item number 1 of a list of length 0:() 

Я просто не понимаю проблемы с этим кодом и я надеюсь, что кто-то может мне помочь.

ответ

1

Для списков, valueIfTagNotThere должны быть create empty list вместо пустой строки

На первом запуске вашего приложения, TinyDB пуст, а значит, для тега = FotoListTag вы не получите никакого значения обратно, поэтому это должно быть пустым список в начале.

Позже вы пытаетесь выбрать первый элемент из списка (zahl is 1). Как вы знаете, список пуст в начале, поэтому, вероятно, вы должны добавить оператор if для проверки, если список не пуст, и только затем выберите первый элемент ... тот же для tag = Schriftlist.

У вас также есть проблема с синхронизацией. в Screen.Initialize вы пытаетесь получить значение от TinyWebDB. Это асинхронный вызов, результат получится в событии TinyWebDB.GotResult, и это займет немного (скажем, 500 миллисекунд), но пока будут выполнены полные блоки события Screen.Initialize. Вероятно, вы ожидаете, что тег = FotolistTag больше не пуст, но это не так.

enter image description here

+0

Спасибо! И извините за ответ так поздно, это был вопрос времени! – SirSandmann