Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678

Из одного Activity получить значение другого Activity

16.09.2013, 11:31. Показов 5617. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Запускаю активити:
Java
1
2
3
4
5
public class MainActivity extends Activity {
...
...
Intent intent = new Intent(getBaseContext(), DocsActivity.class);
startActivity(intent);
При создании запущенного активити хочу получить MainActivity для того, чтобы использовать его процедуры.

Пробовал через конструктор второго активити:
Java
1
2
3
4
public DocsActivity(MainActivity mainActivity){
 
    
    }
Скажите, как это сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.09.2013, 11:31
Ответы с готовыми решениями:

Изменение layout-элементов одного activity из другого activity
Здравствуйте! Я хочу изменить размер или цвет текста TextView в одном activity из второго activity, каким образом мне можно это...

Android - Передача данных с одного Activity на другое Activity
Здравствуйте , возникла необходимость получения числовых (int и float ну или double) данных в одном Activity , а обработка и вывод...

Как из одного Activity перенести фотку в другое Activity?
Собственно необходимо отобразить фотографию в activity2, которую загрузили в activity1 из галереи Это код из activity1.java в...

13
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
16.09.2013, 11:39
Никак. Используй сервисы.

Что за функции такие которые надо использовать в нескольких активити?
0
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
16.09.2013, 11:53  [ТС]
Цитата Сообщение от haribo Посмотреть сообщение
Никак. Используй сервисы.
Как никак? А почему с одного класса виден активити другого класса?
Вот так например, с первого класса создаю второй:
Java
1
new Class2(this);
Во втором классе:
Java
1
2
3
4
5
6
7
8
public class Class2 extends Activity {
 
    public static MainActivity mainActivity;
 
    public Class2(MainActivity mainActivity) {
 
        this.mainActivity = mainActivity; //получаю активити первого класса
}
Цитата Сообщение от haribo Посмотреть сообщение
Что за функции такие которые надо использовать в нескольких активити?
Ну если у меня уже есть процедура, которая выводит информацию об ошибке и записывать лог, зачем мне в каждой активити ее писать?

А насчет сервисов я почитаю. Пока не знаю что это.
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
16.09.2013, 11:56
Цитата Сообщение от Slon747 Посмотреть сообщение
Ну если у меня уже есть процедура, которая выводит информацию об ошибке и записывать лог, зачем мне в каждой активити ее писать?
Создай отдельный класс, который пишет в лог и юзай его в своих активити.
0
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
16.09.2013, 12:31  [ТС]
Цитата Сообщение от chizz Посмотреть сообщение
Создай отдельный класс, который пишет в лог и юзай его в своих активити.
Спасибо. Наверное так и сделаю

Добавлено через 28 минут
Но после выделения процедуры в отдельный класс возникла проблема.

Java
1
LayoutInflater layoutInflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
LAYOUT_INFLATER_SERVICE заменил на Context.LAYOUT_INFLATER_SERVICE, а вот что делать с getBaseContext() не знаю.
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
16.09.2013, 12:39
А зачем тебе в этой процедуре getBaseContext() ?
0
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
16.09.2013, 14:25  [ТС]
Цитата Сообщение от chizz Посмотреть сообщение
А зачем тебе в этой процедуре getBaseContext() ?
Процедура, размещенная в главном активити показывает всплывающее окно с сообщением:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    // =========================================================
    // Показ всплывающего информационного окна
    // =========================================================
    public void ShowPopup(String message) {
 
        LayoutInflater layoutInflater = (LayoutInflater) getBaseContext()
                .getSystemService(LAYOUT_INFLATER_SERVICE);
 
        View popupView = layoutInflater.inflate(R.layout.popup, null);
 
        final PopupWindow popupWindow = new PopupWindow(popupView,
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
 
        TextView iTextView = (TextView) popupView.findViewById(R.id.iTextView);
        iTextView.setText(message);
 
        btnClose.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View v) {
                popupWindow.dismiss();
            }
        });
 
        popupWindow.showAtLocation(tvMain, Gravity.TOP, 10, 100);
        popupWindow.setFocusable(true);
        popupWindow.update();
    }
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
16.09.2013, 14:29
Хм... я бы тогда попробовал сделать CustomActivity c этим методом, а остальные Activity от него наследовал.
0
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
16.09.2013, 14:29
Вот твой метод
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public PopupWindow ShowPopup(String message, Context context, TextView textView) {
 
        LayoutInflater layoutInflater = (LayoutInflater) context
                .getSystemService(LAYOUT_INFLATER_SERVICE);
 
        View popupView = layoutInflater.inflate(R.layout.popup, null);
 
        final PopupWindow popupWindow = new PopupWindow(popupView,
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
 
        textView.setText(message);
        
        popupWindow.showAtLocation(tvMain, Gravity.TOP, 10, 100);
        popupWindow.setFocusable(true);
        popupWindow.update();
    }
Он создает, показывает и возвращает тебе созданный popup window элемент, с которым опосля можешь делать что угодно в этом же потоке (ui).

Далее, онклик на кнопку лучше вешать отдельно, вешать ее в методе не правильно.

Причем я твой метод привязал к абстрактному textview то есть ты можешь указать какое textview использовать в каждом конкретном случае.
1
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
16.09.2013, 21:10  [ТС]
Большое спасибо!

Цитата Сообщение от haribo Посмотреть сообщение
Он создает, показывает и возвращает тебе созданный popup window элемент, с которым опосля можешь делать что угодно в этом же потоке (ui).
Я сначала сделал как ты сказал, убрав popupWindow.showAtLocation и добавив в конец "return popupWindow;"
Но потом подумал, а зачем мне опосля что-то с ним делать?

Цитата Сообщение от haribo Посмотреть сообщение
Далее, онклик на кнопку лучше вешать отдельно, вешать ее в методе не правильно.
А почему? Лишний расход ресурсов?
Но я не смог разобраться куда мне втулить обработчик кнопки, если у меня класс без активити.
Подскажи пожалуйста.

Цитата Сообщение от haribo Посмотреть сообщение
Причем я твой метод привязал к абстрактному textview то есть ты можешь указать какое textview использовать в каждом конкретном случае.
Я пока что пожертвовал этим, т.к. пока не понял пользы. Может быть это значит, что в окне сообщения будет размещаться любой View по моему желанию?

В общем, получилось вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void ShowPopup(String message, Context context, View view) {
         
        LayoutInflater layoutInflater = (LayoutInflater) context
                .getSystemService(context.LAYOUT_INFLATER_SERVICE);
 
        View popupView = layoutInflater.inflate(R.layout.popup, null);
 
        final PopupWindow popupWindow = new PopupWindow(popupView,
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
 
        TextView iTextView = (TextView) popupView.findViewById(R.id.iTextView);
        iTextView.setText(message);
        
        popupWindow.showAtLocation(view, Gravity.TOP, 10, 100);
        popupWindow.setFocusable(true);
        popupWindow.update();
    }
Третим параметром указываю View ради showAtLocation().
Но не знаю где разместить OnClick (:
0
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
17.09.2013, 10:13
Так, смотри, твой метод показывает popup, а это нужно не везде.
Эта кнопка на которую ты вешаешь dismiss она находится внутри popup или эта кнопка на форме activity где popup появляется?
0
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
17.09.2013, 10:22  [ТС]
Цитата Сообщение от haribo Посмотреть сообщение
Так, смотри, твой метод показывает popup, а это нужно не везде.
Но я так и задумывал, чтобы показывать popup при вызове процедуры.
Цитата Сообщение от haribo Посмотреть сообщение
Эта кнопка на которую ты вешаешь dismiss она находится внутри popup или эта кнопка на форме activity где popup появляется?
Кнопка находится внутри popup (описана в лайоте popup.xml).
0
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
17.09.2013, 10:27
Всё, теперь у меня в голове все на своих местах. Пихай онклик в метод.
1
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
17.09.2013, 10:33  [ТС]
Цитата Сообщение от haribo Посмотреть сообщение
Всё, теперь у меня в голове все на своих местах. Пихай онклик в метод.
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.09.2013, 10:33
Помогаю со студенческими работами здесь

Получить Activity другого приложения
Подскажите пожалуйста, могу ли я из своего приложения получить Activity другого? Или же как можно из своего приложения запустить Activity...

Приложение зависает, если свернуть и развернуть Activity или перейти на другую Activity
У меня в параллельном потоке происходит куча apply() Решение использовать apply вместо commit было принято из-за скорости. Но...

Вызвать из одной activity функцию другой activity
вызвать из одного activity функцию другой activity Подскажите, можно ли такое реализовать? Допустим у меня есть основная активити и...

Как добавить cardview в activity с другой activity?
У меня есть активность(1), куда нужно добавить cardview. в этой же активности есть кнопка(1), при нажатии которой открывается другая...

Как в Navigation Drawer Activity засунуть Activity?
Здравствуйте! у меня такая проблема navigation drawer activity работает только с фрагментами как мне засунуть активити во фрагмент и...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru