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

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

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

Одно окно Actvity для всего - Программирование Android

13.02.2014, 17:20. Просмотров 1174. Ответов 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
Сообщений: 510
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
Сообщений: 510
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
Сообщений: 510
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
Сообщений: 510
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
304 / 201 / 22
Регистрация: 16.01.2010
Сообщений: 570
14.02.2014, 14:27     Одно окно Actvity для всего #15
Насколько я понял, ТС нужен TextSwitcher. Ну и логика для кнопок. Даже примерчик есть небольшой
http://www.learn-android-easily.com/...tswitcher.html

Не по теме:

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

BumerangSP
4285 / 1407 / 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 для всего
Еще ссылки по теме:
Одно окно для нескольких сущностей C# WPF
Генерируются всего одно случайное число, а не матрица C++/CLI WinForms
MS Excel Как оставить одно слово из всего текста которое в скобках?
Windows 7 Прога для безвозвратного удаления всего, всего с винта сочетанием клавиш
Окно поверх всего Delphi

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

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

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