|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|||||||||||
Перегрузка OnCreate12.09.2016, 01:09. Показов 2220. Ответов 10
Метки нет (Все метки)
Гуру ООП, помогите исправить "конфликт"
Написал свой класс-предок для активити(MyActivity), где в onCreate добавил несколько дополнительных полей для работы с XML и с обработкой ошибки. От него наследую мои "рабочие" активити. MyActivity наследуется от FragmentActivity
В результате все работает, но в Студии строка public void onCreate(Bundle savedInstanceState) { светится ошибкой! Среди предложений можно перед public void onCreate(Bundle savedInstanceState) { поставить @SuppressLint("MissingSuperCall") тогда красный гаснет, но это... подозрительно что-ли... Не знаю как оно поведет себя в разных версиях SDK. Кто знает, можно ли убрать ошибку еще на уровне предка? Что означает/делает @SuppressLint("MissingSuperCall")?
0
|
|||||||||||
| 12.09.2016, 01:09 | |
|
Ответы с готовыми решениями:
10
OnCreate вызывается дважды |
|
345 / 141 / 51
Регистрация: 02.12.2015
Сообщений: 333
|
|
| 12.09.2016, 01:27 | |
Сообщение было отмечено Tester64 как решение
Решение
Правильно, onCreate(Bundle) обязан вызвать super.onCreate(Bundle).
А он вызывает какой-то левый onCreate(Bundle, String, int) поэтому предупреждение нафига вообще было перегружать onCreate()? лучше сделать свой метод со своим именем и туда разместить "доработки". и вызывать его без "super". (super и сейчас писать не обязательно - т.к. этот метод не переопределяется, а перегружается). Совпадение имени только сбивает с толку. Фактически этот метод к оригинальному onCreate никакого отношения не имеет.
1
|
|
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 12.09.2016, 01:34 [ТС] | ||
|
может все-таки можно стандартное перекрыть? ведь РАБОТАЕТ! просто РЕДАКТОР предупреждает об ошибке, но компилятор этой ошибки не замечает...
0
|
||
|
345 / 141 / 51
Регистрация: 02.12.2015
Сообщений: 333
|
|
| 12.09.2016, 01:45 | |
|
можно в MyActivity сделать абстрактные геттеры для параметров "Error_3924829" и R.layout.frm_main
и тогда в наследниках их нужно будет обязательно реализовать и соответственно эти значения не потеряются. а init() вызывать из onCreate(Bundle) в MyActivity. а onCreate в наследниках реализовывать стандартным образом. Тогда невозможно будет забыть вызвать init() и невозможно будет забыть предоставить значения для него.
1
|
|
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 12.09.2016, 02:28 [ТС] | ||
|
в предке перед public void onCreate(Bundle savedInstanceState) { поставил @Deprecated - это ЗАЧЕРКИВАЕТ все мои "стандартные" onCreate сделал protected void _init(Bundle savedInstanceState, String err_title, int ContextView_id){ который "якрко" виден в списке благодаря "_" и в котором реализую всю мою старую начинку onCreate
0
|
||
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
| 12.09.2016, 03:36 | |
|
Вообще-то @Deprecated обозначает, что когда-нибудь это перестанет работать. Или я не прав?
0
|
|
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 12.09.2016, 04:25 [ТС] | ||
|
0
|
||
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
| 12.09.2016, 04:30 | |
|
Так а зачем писать то, что потом не будет работать? Абстрактный init имхо лучше...
0
|
|
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 12.09.2016, 05:24 [ТС] | ||
|
0
|
||
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
| 12.09.2016, 05:32 | |
|
Извиняюсь, не сразу понял смысл. Но все равно способ, мягко говоря, сомнительный по моему мнению. Он-то рабочий. Но сомнительный.
P.S: Мозг уже не соображает, я тут полночи бился с неработающим датчиком освещенности. Только что выяснил - в используемом телефоне нет этого датчика )))))
0
|
|
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 12.09.2016, 06:14 [ТС] | ||
|
Не по теме:
попробую еще раз! есть КУЧА активити, в которых используется МОЙ предок для активити. У всех много кода в onCreate. Надо ВСЕХ переписать. Благодаря @Deprecated в предке у onCreate я СРАЗУ вижу какое активити надо переписать/перебрать (стоит его открыть) - студия явно показывает ошибку в списке методов и в коде!
0
|
||
| 12.09.2016, 06:14 | |
|
Помогаю со студенческими работами здесь
11
viewPager onCreate method Подскажите - программа вылетает в OnCreate Программа вылетает в методе OnCreate Не передаются данные между onCreate и onResume Один объект класса в onCreate и onClick Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты 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. Программа предоставляет более. . .
|