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

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

Войти
Регистрация
Восстановить пароль
 
-37_Holod
1 / 1 / 1
Регистрация: 03.05.2013
Сообщений: 28
#1

Метод запускается сам по себе - Android

25.09.2013, 10:52. Просмотров 514. Ответов 6
Метки нет (Все метки)

Всем привет.

Вот есть кусочек кода для создания меню:

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
28
public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
      // TODO Auto-generated method stub
      
      menu.add("menu1");
      menu.add("menu2");
      menu.add("menu3");
      menu.add("menu4");
      
      return super.onCreateOptionsMenu(menu);
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
      // TODO Auto-generated method stub
      Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show();
      return super.onOptionsItemSelected(item);
    }
    
}
Мне вот что не понятно, что вызывает унаследованный метод

public boolean onCreateOptionsMenu(Menu menu) {

Откуда идет ссылка на его запуск? В Java вроде на запуск методов должна была идти ссылка из "main" и далее по цепочке, а тут он как-то прям сам по себе запускается и создает меню...

Это мои пробелы в знании ООП или какая-то вшитая в компилятор функция? Если создать какой-то другой метод с рандомным названием не указывая на него ссылку - то он не читается компилятором, а этот читается...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
25.09.2013, 11:47     Метод запускается сам по себе #2
Потому что @Override
Что такое наследование вы не знаете, полагаю ?
Насчет main, все так и есть. Просто выне знаете где его искать.
-37_Holod
1 / 1 / 1
Регистрация: 03.05.2013
Сообщений: 28
25.09.2013, 12:09  [ТС]     Метод запускается сам по себе #3
Да, насчет наследования знаю, MainActivity расширяет абстрактный Activity.
Но то, что метод onOptionsItemSelected унаследован и переопределен от предка разве дает ему возможность вызвать самого себя? Попытался смоделировать такую ситуацию в обычной java, унаследовал, переопределил, но унаследованный метод с @Override все равно не вызвался, пока я не назначил его вызов из main
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
25.09.2013, 12:21     Метод запускается сам по себе #4
Цитата Сообщение от -37_Holod Посмотреть сообщение
вызвать самого себя
А он сам себя не вызывает. Или же, вы думаете, что методы onCreate, onResume, onPause, etc, тоже вызывает магия ?
-37_Holod
1 / 1 / 1
Регистрация: 03.05.2013
Сообщений: 28
25.09.2013, 13:17  [ТС]     Метод запускается сам по себе #5
Цитата Сообщение от Netscape Посмотреть сообщение
А он сам себя не вызывает. Или же, вы думаете, что методы onCreate, onResume, onPause, etc, тоже вызывает магия ?
Ну это была неуместная ирония, на самом деле мне интересно знать откуда же они все вызываются. В видеоуроках обьясняется все просто "есть такой-то метод, вставляем его сюда"...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.09.2013, 00:05     Метод запускается сам по себе #6
ну, например, родительский класс может вызывать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2013, 09:00     Метод запускается сам по себе
Еще ссылки по теме:

YouTube API, как отключить ссылку в плеере на сам YouTube? Android
Не запускается метод onLoadFinished Android
Добавить скрол в сам элемент TextView Android
Обработка нажатий на сам фрагмент а не на отдельную кнопку Android
Android Не запускается AndroidStudio

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

Или воспользуйтесь поиском по форуму:
-37_Holod
1 / 1 / 1
Регистрация: 03.05.2013
Сообщений: 28
26.09.2013, 09:00  [ТС]     Метод запускается сам по себе #7
там в конструктор родительского класса передается что-то хитрое

super.onCreate(savedInstanceState);
Yandex
Объявления
26.09.2013, 09:00     Метод запускается сам по себе
Ответ Создать тему
Опции темы

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