Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
shiraishi
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 2
#1

Приложение с тестами - Программирование Android

07.02.2015, 23:13. Просмотров 464. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Приложение с тестами (Программирование Android):

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

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

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

Переделать приложение для Андроид в приложение для ПК - Программирование Android
Встретилась очень мне нужное приложение для анроид систем. К моему сожалению подобных программ нет для систем Windows. Реально ли такие...

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

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

2
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 403
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
Привет! Вот еще темы с ответами:

Сайт с тестами - PHP БД
Здравствуйте. Имеется сайт с тестами. 2 вида тестов, с вариантами ответа и ручной ввод. Не могу никак отправить ответы с помощью ручного...

Ошибка с тестами - Visual Studio
Не могу запустить тест, даже обозреватель тестов не видит их, тесты делаю для следующих методов public string stoka1{get;set;} ...

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

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


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

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

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