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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
#1

Из одного Activity получить значение другого Activity - Программирование Android

16.09.2013, 11:31. Просмотров 2279. Ответов 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){
 
    
    }
Скажите, как это сделать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
16.09.2013, 11:39     Из одного Activity получить значение другого Activity #2
Никак. Используй сервисы.

Что за функции такие которые надо использовать в нескольких активити?
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
16.09.2013, 11:53  [ТС]     Из одного Activity получить значение другого Activity #3
Цитата Сообщение от 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 Посмотреть сообщение
Что за функции такие которые надо использовать в нескольких активити?
Ну если у меня уже есть процедура, которая выводит информацию об ошибке и записывать лог, зачем мне в каждой активити ее писать?

А насчет сервисов я почитаю. Пока не знаю что это.
chizz
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,079
Записей в блоге: 18
Завершенные тесты: 1
16.09.2013, 11:56     Из одного Activity получить значение другого Activity #4
Цитата Сообщение от Slon747 Посмотреть сообщение
Ну если у меня уже есть процедура, которая выводит информацию об ошибке и записывать лог, зачем мне в каждой активити ее писать?
Создай отдельный класс, который пишет в лог и юзай его в своих активити.
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
16.09.2013, 12:31  [ТС]     Из одного Activity получить значение другого Activity #5
Цитата Сообщение от chizz Посмотреть сообщение
Создай отдельный класс, который пишет в лог и юзай его в своих активити.
Спасибо. Наверное так и сделаю

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

Java
1
LayoutInflater layoutInflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
LAYOUT_INFLATER_SERVICE заменил на Context.LAYOUT_INFLATER_SERVICE, а вот что делать с getBaseContext() не знаю.
chizz
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,079
Записей в блоге: 18
Завершенные тесты: 1
16.09.2013, 12:39     Из одного Activity получить значение другого Activity #6
А зачем тебе в этой процедуре getBaseContext() ?
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
16.09.2013, 14:25  [ТС]     Из одного Activity получить значение другого Activity #7
Цитата Сообщение от 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();
    }
chizz
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,079
Записей в блоге: 18
Завершенные тесты: 1
16.09.2013, 14:29     Из одного Activity получить значение другого Activity #8
Хм... я бы тогда попробовал сделать CustomActivity c этим методом, а остальные Activity от него наследовал.
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
16.09.2013, 14:29     Из одного Activity получить значение другого Activity #9
Вот твой метод
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 использовать в каждом конкретном случае.
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
16.09.2013, 21:10  [ТС]     Из одного Activity получить значение другого Activity #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 (:
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
17.09.2013, 10:13     Из одного Activity получить значение другого Activity #11
Так, смотри, твой метод показывает popup, а это нужно не везде.
Эта кнопка на которую ты вешаешь dismiss она находится внутри popup или эта кнопка на форме activity где popup появляется?
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
17.09.2013, 10:22  [ТС]     Из одного Activity получить значение другого Activity #12
Цитата Сообщение от haribo Посмотреть сообщение
Так, смотри, твой метод показывает popup, а это нужно не везде.
Но я так и задумывал, чтобы показывать popup при вызове процедуры.
Цитата Сообщение от haribo Посмотреть сообщение
Эта кнопка на которую ты вешаешь dismiss она находится внутри popup или эта кнопка на форме activity где popup появляется?
Кнопка находится внутри popup (описана в лайоте popup.xml).
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
17.09.2013, 10:27     Из одного Activity получить значение другого Activity #13
Всё, теперь у меня в голове все на своих местах. Пихай онклик в метод.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2013, 10:33     Из одного Activity получить значение другого Activity
Еще ссылки по теме:
Android Восстановление позиции ListView по возвращении из другого Activity
Получение String из другого класса в Activity widget Android
Передать текст из EditText на Activity другого приложения Android
Android Подскажите как запустить через Inten Activity другого приложения
Как увидеть activity другого приложения через прозрачный фон моего? Android

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

Или воспользуйтесь поиском по форуму:
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
17.09.2013, 10:33  [ТС]     Из одного Activity получить значение другого Activity #14
Цитата Сообщение от haribo Посмотреть сообщение
Всё, теперь у меня в голове все на своих местах. Пихай онклик в метод.
Спасибо
Yandex
Объявления
17.09.2013, 10:33     Из одного Activity получить значение другого Activity
Ответ Создать тему
Опции темы

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