18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
||||||
1 | ||||||
Доступ к элементам управления одной активности через другую23.04.2015, 22:37. Показов 4697. Ответов 41
Метки нет (Все метки)
Имеется две активности. Когда запускаю вторую активность, первую не выгружаю (не удаляю).
Можно ли сделать так, чтобы вторая активность имела доступ к элементам управления первой активности? Я пробовал, например так:
0
|
23.04.2015, 22:37 | |
Ответы с готовыми решениями:
41
Данные не передаются из одной активности в другую Доступ к элементам, элемента управления Список разрешить/запретить доступ к элементам управления (.Enable) Доступ к элементам управления другого приложения. Часть 2 |
63 / 41 / 3
Регистрация: 24.08.2013
Сообщений: 620
|
|
23.04.2015, 23:01 | 2 |
Потому как MyCheckBoxInFirstActivity=null
Откуда желание изменять первую активность из второй? Почему бы не обновить элементы в onResume()?
0
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
|
24.04.2015, 13:07 [ТС] | 3 |
Slon747, Вторая активность - окно с настройками. Настроек очень много, передавать туда-сюда данные через интенты (например) не хочется.
Да, можно, наверное.. Я уже думал насчет onActivityResult, например. Я не пойму как получить доступ к данным первой активити из второй, чтобы не создавать копии этих данных? Я только-только перешел с c++ на java, и отсутствие указателей и глобальных объектов меня немного тормозит.
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
24.04.2015, 15:21 | 4 |
znseday, пишите настройки сразу в sharedPreferencess и никаких проблем.
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
24.04.2015, 16:18 | 5 |
Этож ищется в текущей активности, конечно null будет если checkBoxInFirstActivity отсутствует на R.layout.activity_second
0
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
|
24.04.2015, 16:37 [ТС] | 6 |
У меня есть главная активность, и в ней есть переменная типа sharedPreferencess. В этой же активности я сохраняю и загружаю настройки. А как передать sharedPreferencess второй активности, чтобы она изменила настройки?
т.е. теоретически, я могу во второй активности сохранить настройки в файл, а затем опять его прочитать в первой активности. Но должен же быть способ проще и быстрее?
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
24.04.2015, 17:21 | 7 |
sharedPreferencess можешь хоть откуда читать, а если не обязательно сохранять данные м/у запусками приложения, то можно использовать static переменную.
0
|
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
|
|||||||||||
24.04.2015, 17:45 | 8 | ||||||||||
znseday, проще некуда
В одной активити сохраняешь:
0
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
||||||
24.04.2015, 17:56 [ТС] | 9 | |||||
Mikalai, разве
0
|
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
|
|
24.04.2015, 18:05 | 10 |
Как тут уже писали можешь сделать статик переменную или вызывать активити через интент, правда тогда откроется новое активити( Android - Передача данных с одного Activity на другое Activity )
0
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
|
24.04.2015, 18:18 [ТС] | 11 |
Про интенты знаю, спасибо, но как-то муторно. Тем более, что мне желательно не простые типы данных передавать, а объекты. Попробую через статик.
0
|
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
|
24.04.2015, 19:27 | 12 |
Тут просто нужно для себя понять такую штуку - активити, это отдельные логические "куски" в архитектуре программы, их желательно делать максимально независимыми друг от друга.
Если первая активити подготовила для второй какие-то данные то их можно передавать либо через статические поля, либо через intent.putExtras. В соседних темах я немного поспорил со знающими людьми на тему статик полей, подумал и теперь придерживаюсь того же мнения что и они - статик поля не самый надежный метод передачи, могут быть нюансы. На вопрос "а как доступиться к даным, которые в первой активити?" можно ответить так - надо выстроить логику программы так что бы не возникало желания куда-то лезть за этими данными Они должны быть подготовлены и переданы через intent.putExtras() Это чисто имхо. http://developer.android.com/g... ork.html#3
0
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
|
24.04.2015, 20:01 [ТС] | 13 |
Паблито, а что вы думаете насчет Singleton class?
0
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
|
24.04.2015, 20:15 [ТС] | 15 |
если активити это синглинтон, то почему доступ к полям активити может быть только через статик? Что-то я совсем запутался....
0
|
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
|
|
24.04.2015, 20:15 | 16 |
Паблито, вроде как нет. Ты можешь открыть активити А, из него открыть активити В, из него сново открыть активити А. В итоге, если ты не закрывал старые активити, одно активити А будет в бекстеке, другое в фокусе. Вроде так.
0
|
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
||||||||||||||||
24.04.2015, 20:42 | 17 | |||||||||||||||
я не говорил что только через статик, наоборот, я писал что все-таки лучше пользоваться интентами
там делов-то 2-3 строчки что бы запаковать данные и еще 2 что бы достать в другой активити Добавлено через 24 минуты допустим у нас есть две активити - MyActivity и SecondActivity что-бы передать данные из первой во вторую создаем простой класс, назовем его A
1. упаковываем все, что нужно передать Кликните здесь для просмотра всего текста
2. достаем во второй активити наши данные Кликните здесь для просмотра всего текста
1
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
|
25.04.2015, 01:19 [ТС] | 18 |
Паблито, спасибо за пример. Хм... не помню где, но читал, что вроде через интенты можно передавать только простые типы данных. Выходит, что я могу передавать целые сложные объекты (например, "а" типа "А" в данном примере)?
В данном примере создается копия данных, или работа идет с первоначальным объектом "а" из первой активити?
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
25.04.2015, 13:25 | 19 |
Да можно, только класс, который вы передаете должен реализовывать интерфейс Serializable.
Передается копия.
1
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 570
|
||||||
25.04.2015, 14:03 [ТС] | 20 | |||||
Ясно.
Spelcrawler, а можно как-то передавать что-то типа указателя (как в c++)? Паблито, в той вашей ссылке на документацию меня совсем добила фраза:
0
|
25.04.2015, 14:03 | |
25.04.2015, 14:03 | |
Помогаю со студенческими работами здесь
20
Доступ к элементам управления (DGW, ListBox) из потоков Как получить доступ к элементам управления другой формы Доступ к элементам одной формы из другой Доступ из одной формы к элементам другой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |