Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
clergyman49
0 / 0 / 0
Регистрация: 13.02.2014
Сообщений: 5
#1

Одно окно Actvity для всего - Android

13.02.2014, 17:20. Просмотров 1167. Ответов 16
Метки нет (Все метки)

Экран приложения состоит из трех элементов: Текста, кнопки Да и кнопки Нет.
В зависимости от выбранной кнопки, Текст принимает 100 разных значений, следуя своего рода блок-схеме.

Вопрос, можно ли реализовать это в одной активности, не создавая 100 штук под каждый вариант ответа?
Если да, то как?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
13.02.2014, 17:31     Одно окно Actvity для всего #2
Так, меняйте только текст и все. Метод setText для TextView
clergyman49
0 / 0 / 0
Регистрация: 13.02.2014
Сообщений: 5
13.02.2014, 20:37  [ТС]     Одно окно Actvity для всего #3
Можно попросить пример кода, где значение TextView привязано к нажатию кнопки?
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
14.02.2014, 09:10     Одно окно Actvity для всего #4
Цитата Сообщение от clergyman49 Посмотреть сообщение
Можно попросить пример кода, где значение TextView привязано к нажатию кнопки?
Java
1
2
3
4
5
6
7
final TextView txt = (TextView)findViewById(R.id.textView1);
Button myBut = (Button)findViewById(R.id.button1);
myBut.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
txt.setText("Ваш текст");
 
}});
clergyman49
0 / 0 / 0
Регистрация: 13.02.2014
Сообщений: 5
14.02.2014, 10:21  [ТС]     Одно окно Actvity для всего #5
Спасибо, с этим примером все ясно.

Но, как мне задать кнопке сразу 100 значений?
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
14.02.2014, 10:48     Одно окно Actvity для всего #6
Цитата Сообщение от clergyman49 Посмотреть сообщение
Но, как мне задать кнопке сразу 100 значений?
СОздайте отдельный класс, например Data, в котором пропишите public все нужные значения. А в нажатии кнопки пропишите условия

Java
1
2
3
4
5
6
7
8
9
final TextView txt = (TextView)findViewById(R.id.textView1);
Button myBut = (Button)findViewById(R.id.button1);
myBut.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (text = Data.<переменная1>) {
txt.setText(text); } else if ( и так далее) {
} }
 
}});
На самом деле это самый тупой способ, попробуйте создать свой алгоритм, тем более что я не знаю какая у вас задача и по какому принципу выбирается ответ.
Так же можно использовать базу данных, если информации много или строки в Data классе будут очень длинными
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 508
14.02.2014, 10:58     Одно окно Actvity для всего #7
Можно в String.xml создать все ваши строки, а в отдельном классе сделать массив int[] с ID строк.
А вообще стоит описать то что хотите получить в итоге, возможно и решение будет иным..
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
14.02.2014, 11:03     Одно окно Actvity для всего #8
Цитата Сообщение от NOSC Посмотреть сообщение
if (text = Data.<переменная1>) {
только вот так строки не сравнивайте, ошибка не вылетит, но и нужного результата не добьетесь.
для сравнения строк используйте equals
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 508
14.02.2014, 11:08     Одно окно Actvity для всего #9
Почемуто мне кажется что к вашему заданию больше подойдут связанные списки.
clergyman49
0 / 0 / 0
Регистрация: 13.02.2014
Сообщений: 5
14.02.2014, 11:20  [ТС]     Одно окно Actvity для всего #10
Программа по структуре напоминает обычный "Тест", пользователю задаются вопросы, на которые можно ответить ДА или НЕТ (две кнопки соответственно), в зависимости от выбранной кнопки, задается следующий вопрос.

Например:
______________________________________"Вы мужчина?"
____________Если ДА - "Вы женаты?"_______________________Если НЕТ - "Вы замужем?"

Если ДА - "Больше 2х лет?"___Если НЕТ - "В разводе?"_____Если ДА - "Вы счастливы в браке?"__Если НЕТ - "В разводе?"


И таких вопросов, будет может 100, а может и 1000 в будущем, соответственно хочется придумать наиболее шустрый алгоритм. И не создавать 1000 activity
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 508
14.02.2014, 12:26     Одно окно Actvity для всего #11
Раз у вас взаимосвязанные вопросы, то 100% вам нужны связанные списки. Делаются они на связанных классах.
clergyman49
0 / 0 / 0
Регистрация: 13.02.2014
Сообщений: 5
14.02.2014, 13:18  [ТС]     Одно окно Actvity для всего #12
Цитата Сообщение от korsaj Посмотреть сообщение
Раз у вас взаимосвязанные вопросы, то 100% вам нужны связанные списки. Делаются они на связанных классах.
Поисковик отказался объяснять
Можно попросить какой-нибудь пример?
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
14.02.2014, 13:44     Одно окно Actvity для всего #13
Цитата Сообщение от NiRamz Посмотреть сообщение
только вот так строки не сравнивайте, ошибка не вылетит
А какая ошибка??
Автору конечно пример не подойдет. Может все таки использовать БД и связные данные в нескольких таблицах???
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 508
14.02.2014, 13:58     Одно окно Actvity для всего #14
Учитесь пользоватся поисковиком
http://javist.ru/kak-sozdat-svyazannyj-spisok/
http://javist.ru/svyazannyj-spisok-realizacii-v-java/
http://www.linux.org.ru/forum/development/3409348
Vladimirys
298 / 195 / 22
Регистрация: 16.01.2010
Сообщений: 549
14.02.2014, 14:27     Одно окно Actvity для всего #15
Насколько я понял, ТС нужен TextSwitcher. Ну и логика для кнопок. Даже примерчик есть небольшой
http://www.learn-android-easily.com/...tswitcher.html

Не по теме:

И это, не считая авторских прав на тесты

BumerangSP
4284 / 1406 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
14.02.2014, 19:37     Одно окно Actvity для всего #16
Для простоты можно сделать класс с полями: текстовое (собственно, вопрос) и числовые (индексы для перехода). Заполнить объектами этого класса массив.
Допустим, есть 3 варианта ответа: да, нет, не знаю. Значит, в классе будет 4 поля: String вопрос и три int индекс. Проходя по всему массиву, смотрим, на какую из 3 кнопок (ответов) нажал пользователь и выбираем соответствующий индекс на элемент следующего вопроса (то бишь объекта) в этом массиве. Достаточно просто и помогает избежать кучи if-ов. Всего один switch с 3 вариантами.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2014, 16:19     Одно окно Actvity для всего
Еще ссылки по теме:

Android Рисовать поверх всего
Немогу открыть окно для набора для вызова Android
Android Не стандартное окно для двух камер
Android Как организовать еще одно место для обрабатывания процедур?
Android OnClick для всего экрана

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

Или воспользуйтесь поиском по форуму:
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
17.02.2014, 16:19     Одно окно Actvity для всего #17
Цитата Сообщение от NOSC Посмотреть сообщение
А какая ошибка??
Автору конечно пример не подойдет. Может все таки использовать БД и связные данные в нескольких таблицах???
Почитайте про сравнение двух объектов в Java, строки относится к этим самым объектам
Yandex
Объявления
17.02.2014, 16:19     Одно окно Actvity для всего
Ответ Создать тему
Опции темы

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