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

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

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

Связь между Activity - Программирование Android

29.08.2013, 10:09. Просмотров 1209. Ответов 5
Метки нет (Все метки)

День добрый

Не могу понять как организовать связь между различными Activity, точнее не связь, я передачу данных в обоих направлениях.
Пример брал с этого урока. Суть вот в чем: есть 3 активити: 1 главное, остальные 2 расположены в вкладках таба. Я хочу сделать вот что: в главном активити происходил опрос GPS в фоне, а данные передовать во 2 активити, но как это сделать я не понимаю. Думал мб подойдут глобальные переменные, но не тут было( 2 активи их просто не видит. Нашел способ передавать данные между активити (getIntExtra, putExtra), но эти данные передаются во время "старта" активити, а мне надо в фоне. Подскажите в какую сторону копать пожалуйста.

И еще один вопрос: как сделать чтобы переменные либо класс был виден во всем проекте, а не только в классе, которые его породил?

Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2013, 10:09     Связь между Activity
Посмотрите здесь:

Переключение между Activity - Программирование Android
У меня на главном экране в приложении расположено несколько кнопок. На нажатие каждой из них открывается активность ListView. Проблема в...

Переключение между Activity - Программирование Android
Здравствуйте, в Android Studio есть шаблон Tabbed Activity, в котором страницы перелистываются свайпами. Так вот, можно ли к каждой...

Переход между fragment и activity - Программирование Android
Доброй ночи) возникла необходимость обратного перехода от активити во фрагмент, при этом ничего обратно передать не надо. То есть...

Обмен данными между Activity - Программирование Android
Между Activity делал обмен через Intent, но передает пустой строку. второй активити package com.androidexample.httpgetexample; ...

Передача значений между Activity - Программирование Android
Есть 2 Activity, Main и Two. В Main - TextView. в Two - Button и Edittext (Decimal) Как мне передать с Two в Main значение указное в...

Переход перелистыванием между Activity - Программирование Android
Изучением программирования под андроид занялся совсем недавно, и для начала решил написать простое приложение: 2 странички переход между...

Передача данных между тремя Activity - Программирование Android
Доброго времени суток! у меня тут проблемка, связанная с Intent'ами, помогите разобраться. Есть 3 активности: MainActivity, SearchActivity...

Переключение между activity (простой пример) - Программирование Android
Здравствуйте, подскажите пожалуйста в чем ошибка в этом простом примере, никак не могу разобраться. С главного активити запускаю...

Переключение между Activity путём нажатия кнопки - Программирование Android
работаю в eclips. создал два файла, в папку res\layout\activity_second.xml и activity_second2.xml потом классы посредством кторых будет...

Обмен данными между Activity (одна глобальная переменная) - Программирование Android
Добрый день, товарищи. Мой путь в андроиде только начинается, поэтому элементарные для Вас вещи кажутся непонятными для меня. Есть...

Переход между Activity через заданное время. Как лучше? - Программирование Android
Добрый день. Вопрос от новичка. Какую задачу хотел решить: появляется первое Activity. Через 5 секунд (например) - приложение...

destroy activity - Программирование Android
Как предотвратить destroy активитей которые находятся в activity stack выше чем активити которую я пытаюсь вызвать методом startActivity?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 402
29.08.2013, 17:03     Связь между Activity #2
так
Java
1
2
3
4
Bundle bundle = new Bundle();
Intent intent = new Intent(A.this, B.class);
bundle.putString("vidoedetails", filedetails);
intent.putExtras(bundle);
или вот так

Constants.java
Java
1
public static String WELL_KNOWN_STRING ="ololo";
Activity1.java
Java
1
bundle.putString(Constants.WELL_KNOWN_STRING, filedetails);
Activity2.java
Java
1
filedetails = extras.getString(Constants.WELL_KNOWN_STRING);
для общей видимости используйье модификатор public. Если нужно из другого пакета вызвать, то используйте
import folderwithyourclass.yourclass;
sirik2012
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
29.08.2013, 17:19  [ТС]     Связь между Activity #3
Я сделал немного по другому и хочу спросить: это допустимо
Я создал класс и все переменные описал как public static
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.08.2013, 22:54     Связь между Activity #4
используйте фрагменты.
sirik2012
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
30.08.2013, 00:13  [ТС]     Связь между Activity #5
Хорошо, а что если мне надо получить доступ к данным не только из всех активити, а из 2-3 потоков, которые запущены из главной и 2-3 из второй?
Думаю, класс то что надо, или я могу ошибаться?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
30.08.2013, 01:02     Связь между Activity #6
если нельзя обойтись без такого класса, значит, скорее всего, кривая архитектура.

Добавлено через 5 минут
Цитата Сообщение от sirik2012 Посмотреть сообщение
Нашел способ передавать данные между активити (getIntExtra, putExtra), но эти данные передаются во время "старта"
не только:
Для каждой Activity в манифесте можно указать аттрибут launchMode. Он имеет несколько значений:

* singleTop — Activity может распологаться в стеке несколько раз. Новая запись в стеке создается только в том случаи, если данная Activity не расположенна в вершине стека. Если она на данный момент является вершиной, то у нее сработает onNewIntent() метод, но она не будет пересоздана
* singleTask — создает новый таск и устанавливает Activity корнeвой для него, но только в случаи, если экзеапляра данной Activity нет ни в одном другом таске. Если Activity уже расположена в каком либо таске, то откроется именно тот экземпляр и вызовется метод onNewIntent(). Она в свое время становится главной, и все верхние экземпляры удаляются, если они есть. Только один экземпляр такой Activity может существовать
еще есть такая штука как BroadcastReceiver
Yandex
Объявления
30.08.2013, 01:02     Связь между Activity
Ответ Создать тему
Опции темы

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