Изобретатель приложения 2 использует TinyDB для хранения ценности

Я создаю приложение для Android с помощью App Inventor 2. Я хочу создать игру с вопросами и ответами, которая может сохранять оценки игроков с помощью TinyDB.

У меня 4 экрана
- Главный экран
- Экран вопросов и ответов - Игра окончена
- Ввод имени игрока
- Таблица лидеров

После того, как игрок проиграл игру, игра покажет его оценки и потребует от игроков ввести свое имя. И тогда имя игрока будет сохранено в TinyDB. Когда игрок начинает новую игру (не закрывая приложение), опять же, если он проиграл игру, ему нужно ввести свое имя, и тогда его оценки и имя будут сохранены в TinyDB. Теперь в TinyDB должны храниться две записи. Когда игрок переходит в таблицу лидеров, он должен видеть свои оценки и имена (теперь всего две записи).

Я создал TinyDB, но каким-то образом старая запись будет заменена новой записью. Он не может хранить две записи.

Вот мои коды для ввода игрока

введите здесь описание изображения

Коды для таблицы лидеров

введите здесь описание изображения

Отредактированный код в таблице лидеров

введите здесь описание изображения


person Community    schedule 28.04.2016    source источник


Ответы (1)


В событии Leaderboard.Initialize вы должны прочитать результат из TinyDB с помощью блока TinyDB.GetValue и присвоить его глобальной переменной marksList.

Ваш startvalue в событии Leaderboard.Initialize — это только подсписок, который будет добавлен в markerList позже в вашей процедуре procedure, а не сам полный список. Кстати. вы можете переименовать этот procedure, например, в insertMarks...

Также, вероятно, неплохо было бы научиться работать со списками и списками списков... См. здесь

person Taifun    schedule 28.04.2016
comment
Подскажите, что мне делать в моем случае?? Даже я использовал TinyDB для получения значения, оно тоже имеет только одно значение. - person ; 28.04.2016
comment
ну, вначале TinyDB не имеет никакого значения... возможно, вы захотите отредактировать свой вопрос и добавить обновленный снимок экрана... - person Taifun; 28.04.2016
comment
если вы хотите получить значение из TinyDB, вам следует использовать блок TinyDB.GetValue, а не блок TinyDB.StoreValue. Рекомендую еще раз внимательно прочитать мой ответ... - person Taifun; 28.04.2016