Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 2
1

Приложение с тестами

07.02.2015, 23:13. Показов 803. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, товарищи. Сразу скажу, что я совсем нуб и изучаю программирование под андроид едва ли неделю. Дело в том, что я, переоценив свои возможности и качество учебного материала, решил чисто практики ради создать приложение с тестиком (что-то вроде "узнай, кто ты из винкс", лол), и столкнулся с банальным непониманием работы сей задумки. Допустим, в MainActivity у меня есть TextView с описанием теста, в который позднее должен отобразиться результат прохождения теста, и есть кнопка "начать тест", которая вызывает активность с первым вопросом, например "Почему ты не можешь разобраться с проблемой сам?" и двумя RadioButton с вариантами ответа: "Потому что я тупой" и "В гугле забанили". После клика на подходящий вариант, нужно нажать на кнопку "следующий вопрос", которая перекидывает на аналогичную этой третью активность, с вопросом и двумя вариантами ответа, но на ней уже вместо кнопки "следующий вопрос" находится кнопка "узнать результат", которая возвращает вас в MainActivity, где в TextView уже должен находиться результат теста.

Теперь немного о том, как я пытался это реализовать. В MainActivity я заприватил переменную:
Java
1
static final private int CHOOSE_ANSWER = 0;
И прописал кнопку, начинающую тест:
Java
1
2
3
4
    public void onStartTest(View view) {
        Intent begintest = new Intent(Test01Activity.this, Test0101Activity.class);
        startActivityForResult(begintest, CHOOSE_ANSWER);
    }
Но дальше моя крыша совсем протекла от количества свалившейся на нее информации, и на активности с первым вопросом я начал делать что-то совсем странное, что, разумеется, не привело к тому результату, на который я рассчитывал. Для начала я заприватил две переменные: одну для ответа "Потому что я тупой", и вторую для ответа "В гугле забанили", после чего прописал код для RadioButton и кнопки, ведущей на активность со вторым (последним) вопросом. Что-то мне подсказывает, что я сделал это неправильно, потому что еще на момент чтения урока не до конца осознал происходящее.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    public final static String NOBRAIN1 = "package aswell.NOBRAIN1";
    public final static String NOBRAIN2 = "package aswell.NOBRAIN2";
 
    public void onRadioButton(View view) {
        Intent answer01intent = new Intent();
 
        switch (view.getId()) {
            case R.id.rb010101:
                answer01intent.putExtra(NOBRAIN1, "");
                break;
            case R.id.rb010102:
                answer01intent.putExtra(NOBRAIN2, "");
                break;
            default:
                break;
        }
        setResult(RESULT_OK, answer01intent);
    }
 
    public void onNextPage(View view) {
        Intent nextpage = new Intent(Test0101Activity.this, Test0102Activity.class);
        startActivity(nextpage);
    }
На странице со вторым вопросом в коде все тоже самое, кроме переменных, разумеется, и кнопка возвращает в MainActivity, где, по идее, должен быть результат теста (хотя и дураку очевидно, что с таким-то кодом ничего не будет). Ну и, собственно, в самом MainActivity прописан такой же кривой, как и мои руки, код для получения результата.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
 
        if (requestCode == CHOOSE_ANSWER) {
            if (resultCode == RESULT_OK) {
                String result1 = data.getStringExtra(Test0101Activity.NOBRAIN1) + data.getStringExtra(Test0102Activity.YATUPOY1);
                mResultText.setText(R.string.result_test01_01);
            }else {
                mResultText.setText("");
            }
            if (requestCode == RESULT_OK) {
                String result2 = data.getStringExtra(Test0101Activity.NOBRAIN1) + data.getStringExtra(Test0102Activity.YATUPOY2);
                mResultText.setText(R.string.result_test01_02);
            }else {
                mResultText.setText("");
 
            }
            if (resultCode == RESULT_OK) {
                String result3 = data.getStringExtra(Test0101Activity.NOBRAIN2) + data.getStringExtra(Test0102Activity.YATUPOY1);
                mResultText.setText(R.string.result_test01_03);
            }else {
                mResultText.setText("");
            }
            if (resultCode == RESULT_OK) {
                String result3 = data.getStringExtra(Test0101Activity.NOBRAIN2) + data.getStringExtra(Test0102Activity.YATUPOY2);
                mResultText.setText(R.string.result_test01_04);
            }else {
                mResultText.setText("");
            }
        }
    }
В строках типа result_test прописаны заготовки с результатами теста.
Вот, в общем-то, и вся проблема. Приложение запускается, кнопки и все остальное работают, но результатов, как уже можно было догадаться, нет. Подскажите, люди добрые, что я делаю не так, и где можно почитать что-либо на эту тему, ибо я так толком ничего и не нагуглил. Желательно на русском, ибо английский знаю только сугубо разговорный, а в серьезные темы с таким уровнем лезть нет смысла. Спасибо за внимание. Всем добра!
P.S. Пишу в Android Studio.

Добавлено через 7 минут
И еще, может ли мне как-то помочь в этом вопросе SharedPreferences?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2015, 23:13
Ответы с готовыми решениями:

Приложение с тестами
Ребят, привет. Помогите написать тесты по java и anroid разработке. Необходимы вопросы как с одним...

Работа с тестами
Всем доброго времени суток уважаемые посетители. Задача стоит такая: создать тест, который...

Помогите с тестами.
1. В нижеприведенной таблице хранится информация о студентах. При этом известно, что студент может...

Ошибка с тестами
Не могу запустить тест, даже обозреватель тестов не видит их, тесты делаю для следующих методов...

2
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
08.02.2015, 00:06 2
Дам наводку: для вашей задачи хватит одной активити, и пары фрагментов.После ответа на текущий вопрос, можно просто переиспользовать элементы на экране, в TextView с вопросом вставить новый вопрос итд.
Результаты ответов можно сохранять в массиве, SharedPreferences используется для долгосрочного хранения инфы, например если юзер отвечал на вопросы, закрыл приложение, открыл заново и начал с того места, где закончил.
Общая картина примерно такая: в активити стартовый фрагмент с вопросами, результаты ответов сохраняются в массив определённый в активити, при ответе на последний вопрос, стартовый фрагмент заменяется итоговым, которому из активити передаются результаты...
1
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 2
08.02.2015, 01:19  [ТС] 3
Большое спасибо за наводку, попробую разобраться. Добра Вам.
0
08.02.2015, 01:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2015, 01:19
Помогаю со студенческими работами здесь

Поделитесь тестами по C++
Помогите. Нужны какие-нибудь тесты по C++

Сайт с тестами
Здравствуйте. Имеется сайт с тестами. 2 вида тестов, с вариантами ответа и ручной ввод. Не могу...

F9 не работает в программе с тестами
Скидываю программу, почему то у после перезагрузки компьютера не работает F9 для этой программы,...

Создание задачи с тестами
Добрый день. Помогите пожалуйста доделать задачку, необходимо создать приложение: 1. регистрация...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru