Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
shiraishi
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 2
1

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

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

Здравствуйте, товарищи. Сразу скажу, что я совсем нуб и изучаю программирование под андроид едва ли неделю. Дело в том, что я, переоценив свои возможности и качество учебного материала, решил чисто практики ради создать приложение с тестиком (что-то вроде "узнай, кто ты из винкс", лол), и столкнулся с банальным непониманием работы сей задумки. Допустим, в 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2015, 23:13
Ответы с готовыми решениями:

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

Допиленное узкоспециализированное приложение или неповоротливое многофункциональное приложение?
Если вопрос про "что нужно знать?" висит, то и этот должен зайти. Появилась...

Узнать приложение которое запустило моё приложение
Приветствую всех! Помогите разобраться. Есть ли возможность узнать, что за...

Сообщение "приложение остановлено" постоянно, даже когда приложение вообще не запущено
Собственно ,сабж в топике

Переделать приложение для Android в приложение для ПК
Встретилась очень мне нужное приложение для анроид систем. К моему сожалению...

2
Gabberr
103 / 103 / 19
Регистрация: 13.10.2009
Сообщений: 404
08.02.2015, 00:06 2
Дам наводку: для вашей задачи хватит одной активити, и пары фрагментов.После ответа на текущий вопрос, можно просто переиспользовать элементы на экране, в TextView с вопросом вставить новый вопрос итд.
Результаты ответов можно сохранять в массиве, SharedPreferences используется для долгосрочного хранения инфы, например если юзер отвечал на вопросы, закрыл приложение, открыл заново и начал с того места, где закончил.
Общая картина примерно такая: в активити стартовый фрагмент с вопросами, результаты ответов сохраняются в массив определённый в активити, при ответе на последний вопрос, стартовый фрагмент заменяется итоговым, которому из активити передаются результаты...
1
shiraishi
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 2
08.02.2015, 01:19  [ТС] 3
Большое спасибо за наводку, попробую разобраться. Добра Вам.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2015, 01:19

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru