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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 450
#1

Доступ к элементам управления одной активности через другую - Программирование Android

23.04.2015, 22:37. Просмотров 1388. Ответов 41
Метки нет (Все метки)

Имеется две активности. Когда запускаю вторую активность, первую не выгружаю (не удаляю).
Можно ли сделать так, чтобы вторая активность имела доступ к элементам управления первой активности?
Я пробовал, например так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class SecondActivity extends Activity
{
 
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);      
 
        setContentView(R.layout.activity_second);
 
        CheckBox MyCheckBoxInFirstActivity = (CheckBox)findViewById(R.id.checkBoxInFirstActivity);
 
        MyCheckBoxInFirstActivity.setVisibility(View.GONE); // на этой строчке программа вылетает с ошибкой
 
    }     
  
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2015, 22:37     Доступ к элементам управления одной активности через другую
Посмотрите здесь:
Данные не передаются из одной активности в другую Android
Передача данных из одной активности в третью Android
Доступ к элементам Activity из другого класса Android
Android Доступ к элементам вью во время создания Activity
Портирование с одной версии на другую Android
Android Передать параметр из одной в другую
Android Перевод из одной системы счисления в другую
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 450
28.04.2015, 14:44  [ТС]     Доступ к элементам управления одной активности через другую #21
Люди, а подскажите еще, пожалуйста. Вот я передал во вторую активность кучу данных через интент. Вторая активность их видоизменила. Как мне обратно вернуть эту кучу данных в основную активность? (например, когда пользователь нажмет кнопку со стрелочкой "назад")
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
28.04.2015, 14:54     Доступ к элементам управления одной активности через другую #22
Вообще надо понимать для чего эта "куча данных", от этого и плясать. Вернуть можно сто и одним способом.
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 450
28.04.2015, 15:02  [ТС]     Доступ к элементам управления одной активности через другую #23
Rube, Например? (Если не через файл)
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
28.04.2015, 15:30     Доступ к элементам управления одной активности через другую #24
Через класс.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
28.04.2015, 15:45     Доступ к элементам управления одной активности через другую #25
Цитата Сообщение от Rube Посмотреть сообщение
Через класс.
Это же опять ерунда получится) Зачем тогда передавать из первой во вторую через интент, если обратно передавать костылем?)
znseday, из первой активити вторую нужно запускать методом startActivityForResult. Во второй активити в методе onBackPressed перед super.onBackPressed(или еще где, что вызывается перед закрытием второй активити) нужно создать новый интент, поместить в него все данные и вызвать метод setResult с новым интентом. Потом в первой активити переопределить метод onActivityResult в этот метод придет интент из второй активити.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
28.04.2015, 15:58     Доступ к элементам управления одной активности через другую #26
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Это же опять ерунда получится)
Ну ТС наверное дотумкается что и первый раз передавать через класс нужно.
Цитата Сообщение от Spelcrawler Посмотреть сообщение
нужно создать новый интент, поместить в него все данные
А ему же объекты надо туда сюда передавать.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
28.04.2015, 16:00     Доступ к элементам управления одной активности через другую #27
Цитата Сообщение от Rube Посмотреть сообщение
А ему же объекты надо туда сюда передавать.
А в чем проблема? В интент можно все что угодно запихнуть. К тому же у ТСа уже получилось:
Цитата Сообщение от znseday Посмотреть сообщение
Вот я передал во вторую активность кучу данных через интент
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 450
28.04.2015, 16:49  [ТС]     Доступ к элементам управления одной активности через другую #28
Под кучей данных я и имел ввиду один объект, который передаю через интент. Этот вопрос решен.
Spelcrawler, попробую так, хотя не до конца понял, как в OnResultActivity принять интент(
Может, у вас есть под рукой пример или ссылочка на пример?
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
28.04.2015, 16:50     Доступ к элементам управления одной активности через другую #29
Цитата Сообщение от znseday Посмотреть сообщение
Может, у вас есть под рукой пример или ссылочка на пример?
Есть)
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 450
29.04.2015, 22:27  [ТС]     Доступ к элементам управления одной активности через другую #30
Всем спасибо! С передачей туда-сюда через интенты разобрался.

Но у меня еще возникла такая идея использования статик-элементов.
Можно же создать базовый класс от активити, например:
Java
1
2
3
public class MyBaseClass extends Activity {
    public static int MegaData;
}
А затем все активити создавать от этого класса, например:
Java
1
2
3
public class SettingsActivity extends MyBaseClass {
// содержимое
}
Тогда вообще не нужно заботится о передаче данных. Переменная MegaData становиться как бы глобальная для всей программы (виджеты и сервисы сейчас не рассматриваю).

Как вам такой подход? Допустимо? Или все равно статик в топку и использовать только интенты?
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
30.04.2015, 08:50     Доступ к элементам управления одной активности через другую #31
И зачем столько наследованных активностей нужно?
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
30.04.2015, 09:30     Доступ к элементам управления одной активности через другую #32
znseday, если приложение не большое можно и так, я думаю. Только нужно следить за тем, чтобы эту переменную не меняли когда это не нужно. Все от задачи зависит, но интенты везде хорошо отрабатывают.
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 450
30.04.2015, 13:42  [ТС]     Доступ к элементам управления одной активности через другую #33
Rube,
Цитата Сообщение от Rube Посмотреть сообщение
И зачем столько наследованных активностей нужно?
Столько, это сколько? Даже в простейшей программе получается минимум две: на Главную Активность и на Активность с Настройками. В программах среднего объема 3-5 активностей (которые мечтают об общих глобальных переменных) вполне норма.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
30.04.2015, 13:47     Доступ к элементам управления одной активности через другую #34
какие общие переменные могут быть у активити и активити с настройками?
ну запустилась та, что с настройками - понажимали там что-то, настройки сохранились, вышли из активити, она закрылась...все, профит

в первой активити, там где это требуется обратились к настройкам, вычитали оттуда все что надо, все...профит
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
30.04.2015, 13:51     Доступ к элементам управления одной активности через другую #35
Паблито, а где потом эти настройки сохранять? А где их считывать? А как узнать какая версия настроек новее, та что в памяти, или та что сохранена? Слишком много таких мелочей. Если говорить только про экран настроек - лучше при любом изменении (либо при выходе с экрана настроек) сохранять все в sharedPreferencess. И доступ из любого места, и на диск записано, и быстро.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
30.04.2015, 13:52     Доступ к элементам управления одной активности через другую #36
так я об этом и говорил, про sharedPreferencess
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
30.04.2015, 13:54     Доступ к элементам управления одной активности через другую #37
Паблито, показалось, что про статичные переменные)
Pablito
30.04.2015, 13:55
  #38

Не по теме:

да все уже, я переметнулся в другой лагерь, теперь люблю разные putExtras и shared preferences

znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 450
30.04.2015, 14:06  [ТС]     Доступ к элементам управления одной активности через другую #39
Цитата Сообщение от Spelcrawler Посмотреть сообщение
а где потом эти настройки сохранять?
в OnPause
Цитата Сообщение от Spelcrawler Посмотреть сообщение
А где их считывать?
в OnCreate или OnResume в зависимости от программы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2015, 14:09     Доступ к элементам управления одной активности через другую
Еще ссылки по теме:
Android Передать параметр из одной активити в другую
Как толкнуть одной фигурой другую в методе onDraw Android
Скопировать картинку из одной ImageView в другую ImageView Android
Доступ в БД через авторизационный сервер Android
Android Полный доступ к android в выключенном состоянии через PC?

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

Или воспользуйтесь поиском по форуму:
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
30.04.2015, 14:09     Доступ к элементам управления одной активности через другую #40
znseday, опасно это. OnPause в некоторых случаях может быть не вызван. OnStop не вызывается если первая активити при запуске второй остается в стеке. Итого получаем непредсказуемые значения в этих переменных.
Yandex
Объявления
30.04.2015, 14:09     Доступ к элементам управления одной активности через другую
Ответ Создать тему
Опции темы

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