Я новичок в Java и в Android. Пишу первое приложение, это тесты ПДД. Думаю делать где-то 40 билетов. Задача стоит в том что бы сделать грамотно статистику ответов. Я не знаю как это сделать. В приложение стандартно: Вопрос (textView) и 3 кнопки (Button). Я так понимаю на каждую кнопу нужно вешать какое-то значение. Например если брать SQLite это прописывать лучше int? Создать таблицу например "Билет1" и там данные типа int?и так по каждому билету? Если ответ не правильный это 0, если правильный 1. Но как их потом достать из БД? Нужно когда тест закончился вылезла активность с количеством правильных и не правильных ответов. Так же будет еще одна активность где нужно выбрать номер билеты и вылезет статистика ошибок. Есть ли какие-то уроки именно по таким тестам? Или мб вы мне логику объясните плиз. я пока не очень соображаю как это все лучше сохранить и как лучше читать из БД. Надеюсь вы меня поняли. Заранее спасибо
SharedPreferences
никаким образом не подходит для использования в качестве хранилища подобного рода данных, однозначно необходимо использовать БД.
Вам нужно создать в БД таблицы questions, answers и results: в 1-ой - вопросы, во 2-ой - варианты ответов, с отметкой правильного, в 3-ей - прогресс.
В questions пишется ID вопросов и собственно сами вопросы (текст):
| _id | question |
------------------
| 1 | вопрос1 |
| 2 | вопрос2 |
При выводе на экран вы получаете очередной вопрос из БД и выводите его. ID этого вопроса сохраняете для последующего использования.
В answers пишутся ответы по следующей структуре:
| _id | ID_question | answer | correct |
----------------------------------------
| 1 | 1 | ответ1.1| 0 |
| 2 | 1 | ответ2.1| 1 |
| 3 | 2 | ответ1.2| 1 |
| 4 | 2 | ответ2.2| 0 |
| 5 | 2 | ответ3.2| 0 |
первый столбец - собственный ID ответа, второй - ID вопроса, к которому относится этот ответ (здесь ответы с ID = 1 и 2 - к первому вопросу. 3, 4 и 5 - ко второму), третий столбец - сам ответ (текст), четвертый - отметка правильного ответа (1 - правильный ответб 0 - неправильный).
Такая архитектура позволит включать к каждому вопросу произвольное количество ответов, например к первому - два варианта, ко второму - три варианта.
При выводе вариантов ответов делаете в БД запрос из таблицы answers по столбцу ID_question с ID равным ID вопроса, полученный ранее (при выводе вопроса). Когда пользователь выберет один из вариантов ответа, получаете значение correct для этого ответа и его содержимое пишите в таблицу results (столбец result), в столбец ID_question таблицы results пишем ID вопроса (полученный в начале)
В results пишем результаты прохождения тестов :
| _id | ID_question | result |
------------------------------
| 1 | 1 | |
| 2 | 2 | |
Столбец result заполняется по мере прохождения теста. В дальнейшем, простой выборкой столбца result по значению = 1 из этой таблицы вы получите и количество правильных ответов и ID тех вопросов, что отвечены правильно.
Если у вас проблемы с организацией архитектуры БД и работы с ней, советую почитать книгу Бейли Л. - "Изучаем SQL (Бестселлеры O'Reilly)" - 2012г. в ней вы получите всю необходимую информацию
Очень подробно разбирается создание игры-викторины (по сути билеты ПДД та же викторина) в книгах, которые вам стоит почитать: П.Дейтел "Android для разработчиков" 2016г. и Б.Харди "Android. Программирование для профессионалов" 2016г. второе издание.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть ли какие-нибудь способы интеграции с 1С, не прибегая к решению "1с мобильное приложение"? REST сразу можно откинуть, тк
Поиск постоянно выкидывает на "как растянуть на всю высоту окна"Мне же нужно, чтоб растягивалось на высоту страницы