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

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

16.09.2013, 11:31. Показов 5583. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru