Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
clergyman49
0 / 0 / 0
Регистрация: 13.02.2014
Сообщений: 5
#1

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

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

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

Вопрос, можно ли реализовать это в одной активности, не создавая 100 штук под каждый вариант ответа?
Если да, то как?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2014, 17:20
Ответы с готовыми решениями:

OnClick для всего экрана
На Activity находится много компонентов. Activity несколько штук. И нужно...

Кастомный шрифт для всего приложения
подскажите лучший способ использовать кастомный шрифт для всего приложения.

Как лучше всего хранить данные для приложения?
Допустим есть статический массив интов,или булов.Как его сохранять(onDestroy())...

Кастомный шрифт для всего приложения android eclipse
Как можно применить один шрифт для всего приложения полностью, включая не...

Немогу открыть окно для набора для вызова
Подскажите плииз) ACTION_CALL DIAL_CALL как сделать, при нажатии открывалась...

16
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
13.02.2014, 17:31 #2
Так, меняйте только текст и все. Метод setText для TextView
0
clergyman49
0 / 0 / 0
Регистрация: 13.02.2014
Сообщений: 5
13.02.2014, 20:37  [ТС] #3
Можно попросить пример кода, где значение TextView привязано к нажатию кнопки?
0
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
14.02.2014, 09:10 #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("Ваш текст");
 
}});
1
clergyman49
0 / 0 / 0
Регистрация: 13.02.2014
Сообщений: 5
14.02.2014, 10:21  [ТС] #5
Спасибо, с этим примером все ясно.

Но, как мне задать кнопке сразу 100 значений?
0
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
14.02.2014, 10:48 #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 классе будут очень длинными
1
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 539
14.02.2014, 10:58 #7
Можно в String.xml создать все ваши строки, а в отдельном классе сделать массив int[] с ID строк.
А вообще стоит описать то что хотите получить в итоге, возможно и решение будет иным..
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
14.02.2014, 11:03 #8
Цитата Сообщение от NOSC Посмотреть сообщение
if (text = Data.<переменная1>) {
только вот так строки не сравнивайте, ошибка не вылетит, но и нужного результата не добьетесь.
для сравнения строк используйте equals
1
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 539
14.02.2014, 11:08 #9
Почемуто мне кажется что к вашему заданию больше подойдут связанные списки.
0
clergyman49
0 / 0 / 0
Регистрация: 13.02.2014
Сообщений: 5
14.02.2014, 11:20  [ТС] #10
Программа по структуре напоминает обычный "Тест", пользователю задаются вопросы, на которые можно ответить ДА или НЕТ (две кнопки соответственно), в зависимости от выбранной кнопки, задается следующий вопрос.

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

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


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

Не по теме:

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

1
BumerangSP
4287 / 1409 / 463
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
14.02.2014, 19:37 #16
Для простоты можно сделать класс с полями: текстовое (собственно, вопрос) и числовые (индексы для перехода). Заполнить объектами этого класса массив.
Допустим, есть 3 варианта ответа: да, нет, не знаю. Значит, в классе будет 4 поля: String вопрос и три int индекс. Проходя по всему массиву, смотрим, на какую из 3 кнопок (ответов) нажал пользователь и выбираем соответствующий индекс на элемент следующего вопроса (то бишь объекта) в этом массиве. Достаточно просто и помогает избежать кучи if-ов. Всего один switch с 3 вариантами.
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
17.02.2014, 16:19 #17
Цитата Сообщение от NOSC Посмотреть сообщение
А какая ошибка??
Автору конечно пример не подойдет. Может все таки использовать БД и связные данные в нескольких таблицах???
Почитайте про сравнение двух объектов в Java, строки относится к этим самым объектам
0
17.02.2014, 16:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2014, 16:19

Как организовать еще одно место для обрабатывания процедур?
в mainActivity уж очень много обрабочиков событий. как проще обрести...

Одно окно для нескольких сущностей
Суть вопроса - нужно реализовать несколько справочников.Можно конечно на каждый...

Как сделать одно модальное окно для всех товаров без использования Джаваскрипта
Сейчас товары выводятся с модальным окном циклом...


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

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

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