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

Два Activity - Android

Восстановить пароль Регистрация
 
vovken1997
 Аватар для vovken1997
15 / 13 / 1
Регистрация: 08.07.2012
Сообщений: 190
05.02.2015, 23:45     Два Activity #1
Здравствуйте!
У меня есть в приложении два Activity. Одно, сама программа, на базе которой написан весь функционал приложения. Вторая, это настройки, которые не влезли на первую Activity. Вопрос собственно в том, как управлять компонентами второй Activity из первой?

Пробовал объявлять глобальные переменные public static и через findViewById подключать к переменной объект (во втором Activity), а затем пользоваться этой переменной из первой Activity. Приложение вылетает!

Пробовал Application, вылетает!

Как это делается по нормальному???
Если можно с небольшим примером)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2015, 23:45     Два Activity
Посмотрите здесь:

Android Два layout в одном activity
destroy activity Android
Приостановка Activity Android
Fragments и Activity Android
Activity с авторизацией Android
Android Widget + activity
Activity Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,066
06.02.2015, 08:19     Два Activity #2
Немного неправильно у вас изложен смысл программы. Класс Активити это то что у вас на экране, управлять другой из первой нельзя. Можно например передать значения во вторую из первой - см. Intent.
Что значит "настройки, которые не влезли на первую Activity"? Если это настройки программы то см. preferences.xml.
Если хотите чтоб переменные были читаемы из любых классов можете использовать Sharedpreferences.
Цитата Сообщение от vovken1997 Посмотреть сообщение
Как это делается по нормальному??
Опишите подробно, что вы вообще хотите получить от программы.
vovken1997
 Аватар для vovken1997
15 / 13 / 1
Регистрация: 08.07.2012
Сообщений: 190
06.02.2015, 10:34  [ТС]     Два Activity #3
У меня в классе первой активити, в файле Mainactivity.java реализованы методы и поток работы с блютусом. Я хочу чтобы настройки этого самого блютуса были не в основном activity, а в дополнительном, чтобы не загромождать главный экран. В настройках есть spinner для выбора устройства и кнопка. И мне надо чтобы когда пользователь нажимал на кнопку, вызвался метод подключения из первого activity. По моему как то так.
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,066
06.02.2015, 11:05     Два Activity #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от vovken1997 Посмотреть сообщение
И мне надо чтобы когда пользователь нажимал на кнопку, вызвался метод подключения из первого activity
Значится так, если я правильно понял алгоритм, делаем после нажатия на кнопку запись в Sharedpreferences, закрываем вторую активити (finish), в методе onResume первой активити делаем подключение, предварительно получив данные из Sharedpreferences.
Java
1
2
3
4
5
// записать данные
SharedPreferences pref = getSharedPreferences("data", 1); //получить объект класса SharedPreferences
Editor ed = pref.edit(); // чтобы редактировать данные, определяем Editor
ed.putLong("my_data", 12345); // пишем ключ и значение
ed.commit(); // сохраняем данные
Java
1
2
// получить данные
long my_data = getSharedPreferences("data", 1).getLong("my_data", 0);
vovken1997
 Аватар для vovken1997
15 / 13 / 1
Регистрация: 08.07.2012
Сообщений: 190
06.02.2015, 11:21  [ТС]     Два Activity #5
Допустим такой вариант. У меня есть сейчас кнопка и поле для вывода текста на одном Activity. При нажатии на кнопку, меняется текст в TextView(см. скрины).
Сейчас всё хорошо работает.

Но теперь создадим вторую Activity. В ней есть так же поле для вывода текста TextView. И допустим я хочу чтоб при нажатии на кнопку менялся текст в TextView второго активити. Есть огромное желание написать на первом Activity так:
Код
...
TextView Activity2_b1; 

Activity_b1 = (TextView) findViewById(R.id.Activity2_b1);//R.id.Activity2_b1 - допустим это ID TextView на второй активити

Activity_b1.setText("Привет");
...
Но приложение вылетает с ошибкой!

Как сделать так, чтобы можно было управлять из первой Activity, TextView на втором Activity???
Миниатюры
Два Activity   Два Activity   Два Activity  

Два Activity  
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,066
06.02.2015, 11:31     Два Activity #6
Да нельзя так делать, т.к. в один момент времени у тебя есть только одна активити. Делай как я писал выше или через передачу intent.
Разница между ними, это то что Sharedpreferences сохраняет данные во внешний файл, а intent оперирует данными только при жизни приложения.
arrjj
197 / 188 / 61
Регистрация: 24.09.2014
Сообщений: 527
Завершенные тесты: 1
06.02.2015, 11:57     Два Activity #7
ну или для изврата можно всё запихнуть в одну activity испоьлзуя ViewSwitcher или ViewFlipper
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,066
06.02.2015, 12:19     Два Activity #8
Да тут куча вариантов как делать, я вот смотрю на свои первые приложения и рыдаю)
vovken1997
 Аватар для vovken1997
15 / 13 / 1
Регистрация: 08.07.2012
Сообщений: 190
06.02.2015, 17:41  [ТС]     Два Activity #9
Rube, возможно ли передать BluetoothAdapter таким способом?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2015, 18:25     Два Activity
Еще ссылки по теме:

Android Создание Activity
Разметка activity Android
Можно ли обработать два ListView в пределах одного activity на android? Android
Android Basic Activity
Android Два onActivityResult в одной Activity

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

Или воспользуйтесь поиском по форуму:
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,066
06.02.2015, 18:25     Два Activity #10
Смотря что он из себя представляет, я с ним не работал, но если какой-то id, то почему нет.
Yandex
Объявления
06.02.2015, 18:25     Два Activity
Ответ Создать тему
Опции темы

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