Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Метод запускается сам по себе - Программирование Android

25.09.2013, 10:52. Просмотров 543. Ответов 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" и далее по цепочке, а тут он как-то прям сам по себе запускается и создает меню...

Это мои пробелы в знании ООП или какая-то вшитая в компилятор функция? Если создать какой-то другой метод с рандомным названием не указывая на него ссылку - то он не читается компилятором, а этот читается...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 10:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод запускается сам по себе (Программирование Android):

Не запускается метод onLoadFinished - Программирование Android
Есть класс 1: import android.app.Activity; import android.content.ContentValues; import android.content.Context; import...

Сам по себе запускается BIOS при включении компьютера - Материнские платы
Материнка MSI Z270-A PRO При включении или перезагрузке компьютера,сам по себе включается BIOS. Уже доставал батарейку,ставил...

Сам по себе запускается Яндекс.Браузер (без рекламы и т. п.) - Windows 10
Сам по себе запускается браузер(Яндекс), без рекламы и тп. На вирусы проверял, ничего не нашлось. В чем может быть проблема?

Браузер Google Chrome сам по себе запускается и показывает рекламу - Удаление вирусов
Доброго времени суток, CyberForum.ru Браузер Google Chrome стал запускаться сам по себе и показывать рекламу. Каждый раз открывает...

При включении компьютер сам отключается и сам же снова запускается - Компьютерное железо
Уже третий запуск замечаю такую особенность при запуске: 1. Включаю ~2 секунды работы. 2. Отключение на 2-3 секунды. 3....

Сам себе Iczelion - Assembler
Содержание Бредисловие Iczelion Win32 API Урок 1. Основы Урок 2. MessageBox Урок 2a. Как уменьшить размер программы, выводящей...

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

super.onCreate(savedInstanceState);
0
26.09.2013, 09:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2013, 09:00
Привет! Вот еще темы с ответами:

ПК сам по себе перезагружается - Компьютерное железо
Добрый вечер,у меня такая же проблема,сам себе перезагружается,без синего экрана,без зависаний,просто раз и потух на доли...

Запрос сам в себе - Базы данных
Ребята, вот например есть таблица Name Time a 12-04-2011 a 14-04-2011 a 05-04-2011 b...

Выключается сам по себе - Компьютерное железо
После очистки компа от пыли (снимал кулер, проц, оперативку и видюху, так же менял термопасту). Я нажимаю на кнопку Power, происходит...

Вырубается ПК сам по себе - Компьютерное железо
Нужна помощь в проблеме. Пару недель назад кулер в БП сильно шумел время от времени, я решил почистить пк. Почистил ПК от пыли полностью,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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