18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
||||||
1 | ||||||
Доступ к элементам управления одной активности через другую23.04.2015, 22:37. Показов 4700. Ответов 41
Метки нет (Все метки)
Имеется две активности. Когда запускаю вторую активность, первую не выгружаю (не удаляю).
Можно ли сделать так, чтобы вторая активность имела доступ к элементам управления первой активности? Я пробовал, например так:
0
|
23.04.2015, 22:37 | |
Ответы с готовыми решениями:
41
Данные не передаются из одной активности в другую Доступ к элементам, элемента управления Список разрешить/запретить доступ к элементам управления (.Enable) Доступ к элементам управления другого приложения. Часть 2 |
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
|
28.04.2015, 14:44 [ТС] | 21 |
Люди, а подскажите еще, пожалуйста. Вот я передал во вторую активность кучу данных через интент. Вторая активность их видоизменила. Как мне обратно вернуть эту кучу данных в основную активность? (например, когда пользователь нажмет кнопку со стрелочкой "назад")
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
28.04.2015, 14:54 | 22 |
Вообще надо понимать для чего эта "куча данных", от этого и плясать. Вернуть можно сто и одним способом.
0
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
|
28.04.2015, 15:02 [ТС] | 23 |
Rube, Например? (Если не через файл)
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
28.04.2015, 15:30 | 24 |
Через класс.
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
28.04.2015, 15:45 | 25 |
Это же опять ерунда получится) Зачем тогда передавать из первой во вторую через интент, если обратно передавать костылем?)
znseday, из первой активити вторую нужно запускать методом startActivityForResult. Во второй активити в методе onBackPressed перед super.onBackPressed(или еще где, что вызывается перед закрытием второй активити) нужно создать новый интент, поместить в него все данные и вызвать метод setResult с новым интентом. Потом в первой активити переопределить метод onActivityResult в этот метод придет интент из второй активити.
1
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
28.04.2015, 15:58 | 26 |
Ну ТС наверное дотумкается что и первый раз передавать через класс нужно.
А ему же объекты надо туда сюда передавать.
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
28.04.2015, 16:00 | 27 |
А в чем проблема? В интент можно все что угодно запихнуть. К тому же у ТСа уже получилось:
0
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
|
28.04.2015, 16:49 [ТС] | 28 |
Под кучей данных я и имел ввиду один объект, который передаю через интент. Этот вопрос решен.
Spelcrawler, попробую так, хотя не до конца понял, как в OnResultActivity принять интент( Может, у вас есть под рукой пример или ссылочка на пример?
0
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
|||||||||||
29.04.2015, 22:27 [ТС] | 30 | ||||||||||
Всем спасибо! С передачей туда-сюда через интенты разобрался.
Но у меня еще возникла такая идея использования статик-элементов. Можно же создать базовый класс от активити, например:
Как вам такой подход? Допустимо? Или все равно статик в топку и использовать только интенты?
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
30.04.2015, 08:50 | 31 |
И зачем столько наследованных активностей нужно?
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
30.04.2015, 09:30 | 32 |
znseday, если приложение не большое можно и так, я думаю. Только нужно следить за тем, чтобы эту переменную не меняли когда это не нужно. Все от задачи зависит, но интенты везде хорошо отрабатывают.
0
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
|
30.04.2015, 13:42 [ТС] | 33 |
Rube,
Столько, это сколько? Даже в простейшей программе получается минимум две: на Главную Активность и на Активность с Настройками. В программах среднего объема 3-5 активностей (которые мечтают об общих глобальных переменных) вполне норма.
0
|
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
|
30.04.2015, 13:47 | 34 |
какие общие переменные могут быть у активити и активити с настройками?
ну запустилась та, что с настройками - понажимали там что-то, настройки сохранились, вышли из активити, она закрылась...все, профит в первой активити, там где это требуется обратились к настройкам, вычитали оттуда все что надо, все...профит
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
30.04.2015, 13:51 | 35 |
Паблито, а где потом эти настройки сохранять? А где их считывать? А как узнать какая версия настроек новее, та что в памяти, или та что сохранена? Слишком много таких мелочей. Если говорить только про экран настроек - лучше при любом изменении (либо при выходе с экрана настроек) сохранять все в sharedPreferencess. И доступ из любого места, и на диск записано, и быстро.
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
30.04.2015, 13:54 | 37 |
Паблито, показалось, что про статичные переменные)
0
|
Pablito
|
30.04.2015, 13:55
#38
|
Не по теме: да все уже, я переметнулся в другой лагерь, теперь люблю разные putExtras и shared preferences :D
0
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
|
30.04.2015, 14:06 [ТС] | 39 |
в OnPause
в OnCreate или OnResume в зависимости от программы.
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
30.04.2015, 14:09 | 40 |
znseday, опасно это. OnPause в некоторых случаях может быть не вызван. OnStop не вызывается если первая активити при запуске второй остается в стеке. Итого получаем непредсказуемые значения в этих переменных.
0
|
30.04.2015, 14:09 | |
30.04.2015, 14:09 | |
Помогаю со студенческими работами здесь
40
Доступ к элементам управления (DGW, ListBox) из потоков Как получить доступ к элементам управления другой формы Доступ к элементам одной формы из другой Доступ из одной формы к элементам другой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |