Вопросы по IDEA13
Вопросы по IDEA13
Пробую IDEA.
Добавляю метод OnCreateContextMenuListener, ide показывает в списке OnCreateContextMenuListener (android.view.View), а метод не предлагает. Т.е. я ожидаю увидеть конструктор (так это называется, кстати)?
Добавляю метод OnCreateContextMenuListener, ide показывает в списке OnCreateContextMenuListener (android.view.View), а метод не предлагает. Т.е. я ожидаю увидеть конструктор (так это называется, кстати)?
Re: Вопросы по IDEA13
в доках он объявлен, как View.OnCreateContextMenuListener (http://developer.android.com/reference/ ... tener.html), и если начать с View, то все будет ок.

Re: Вопросы по IDEA13
Смотри какая ерунда...
Выбираю и добаляется только View.OnCreateContextMenuListener, а я ожидаю увидеть некий конструктор:
Код: Выделить всё
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
}Re: Вопросы по IDEA13
сбили с толку и пошел в доки...
View.OnCreateContextMenuListener - это интерфейс и используется:
либо implements класс и дальше можно делать @Override метода:
P.S. используя idea есть хоткей, т.е. внутри класса сtr+o вызывает меню в котором можно найти метод доступный, как @Override(но сначала нужно указать implements Что-то, чтобы например onCreateContextMenu был доступен), кстати если нажать alt+insert, тоже есть удобные генераторы(конструктор/гетеры/сетеры и т.д.).
View.OnCreateContextMenuListener - это интерфейс и используется:
Код: Выделить всё
View.OnCreateContextMenuListener objName = new View.OnCreateContextMenuListener{
}
Код: Выделить всё
class MainActivity extends Activity implements View.OnCreateContextMenuListener{
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
}
}

Re: Вопросы по IDEA13
Спасибо за оперативную помощь.
Можешь на пальцах объяснить что означает @Override ?
Надеюсь я не слишком навязчив...
надо перечитать урок с кнопкой и объявлением OnClickListeneraltwin писал(а):сбили с толку и пошел в доки...
View.OnCreateContextMenuListener - это интерфейс и используется:
Самое интересное, что и без имплементации работает (если руками прописать) или через Generate вставить. Почему?либо implements класс и дальше можно делать @Override метода:
Уже сам через контекстное меню нашел Generate. За ctrl+O спасибо.P.S. используя idea есть хоткей, т.е. внутри класса сtr+o вызывает меню в котором можно найти метод доступный, как @Override(но сначала нужно указать implements Что-то, чтобы например onCreateContextMenu был доступен), кстати если нажать alt+insert, тоже есть удобные генераторы(конструктор/гетеры/сетеры и т.д.).
Сколько для меня новых слов...генераторы(конструктор/гетеры/сетеры и т.д.).
Можешь на пальцах объяснить что означает @Override ?
Надеюсь я не слишком навязчив...
Re: Вопросы по IDEA13
работает потому, что класс Activity тоже наследует этот интерфейс, потому в данном случае интерфейс явно указывать не нужно, просто для наглядности приводил(хотя в голове все еще крутится питоновское -"явное лучше, чем не явное":)) Тут нужно смотреть иерархию классов, если метод доступен, то все ок. Если нет, но нужен искать кого отнаследоватьmihalis писал(а): Самое интересное, что и без имплементации работает (если руками прописать) или через Generate вставить. Почему?
Можешь на пальцах объяснить что означает @Override ?
@Override -просто означает, что метод переопределяет метод класса родителя, т.е. по русски, если убрать @Override с метода onCreate(для примера), то получиться, что мы просто создаем свой метод onCreate(т.е. просто с тем же именем, как и у метода, который вызывается при старте), конечно это java и метод с тем же числом аргументов автоматом переопределит родителя, но для того и нужен @Override, если мы случайно забудем аргументы или передадим больше, это будет другой метод (т.е. он не будет вызываться Android о нем не знает), @Override же явно заставляет машину при сборке проверять то, что метод действительно переписывает родителя и если к примеру аргументов больше - выдаст ошибку. Или же если такого метода нет у родителя без @Override компилятор будет молчать и просто создаст его, с @Override же он выдаст ошибку. Т.е. это как статическая типизация... можно и без нее обойтись - проще - меньше писать, но это дополнительная проверка сильно упрощающая жизнь в сложных проектах.
