Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Обсуждение уроков
kharbey
Сообщения: 2
Зарегистрирован: 11 ноя 2012, 11:07

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение kharbey » 02 дек 2012, 09:45

Применил метод onMenuOpened(...), все уже правильно работает.
Но все равно вопрос остался, почему при первом запуске onPrepareOptionsMenu срабатывает до вызова меню.

Artem
Сообщения: 4
Зарегистрирован: 15 мар 2013, 17:18

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение Artem » 15 мар 2013, 18:02

Здравствуйте.

Подскажите, пожалуйста, как можно создать меню с кнопками внизу, отображаемое постоянно, без нажатия кнопки Menu (например, как в стандартном будильнике, см. вложение).
Вложения
1.png
1.png (13.25 КБ) 12457 просмотров

Аватара пользователя
dens
Сообщения: 47
Зарегистрирован: 03 фев 2013, 00:14

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение dens » 17 мар 2013, 23:04

А там среди стандартных элементов есть же табы (панель с несколькими кнопками), её никак не прилепить?

worldmen
Сообщения: 12
Зарегистрирован: 08 апр 2013, 00:04

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение worldmen » 19 май 2013, 21:47

Я не понял как делать обработку нажатий в этом меню. Уже урок №15 посмотрел, но там немного не так.
Должно быть что-то вроде этого кода, но что в case писать?

Код: Выделить всё

public boolean onOptionsItemSelected(MenuItem item) {
    	
    	switch (item.getItemId()){
    		case :
    			
    			break;
    		default:
    			break;
    	}
    	return super.onOptionsItemSelected(item);
    }

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение rezak90 » 19 май 2013, 22:22

id, которые указаны в том файле который инфлейтили в методе onCreateOptionsMenu
R.id.team
Политика на форуме запрещена

worldmen
Сообщения: 12
Зарегистрирован: 08 апр 2013, 00:04

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение worldmen » 22 май 2013, 21:23

rezak90 писал(а):id, которые указаны в том файле который инфлейтили в методе onCreateOptionsMenu
Это если меню добавлялось программно: menu.add(0, 1, 0, "add");
А если меню создавалось из xml-файла? Там id - это текст:

Код: Выделить всё

<item
 android:id="@+id/menu_add"
 android:title="add">
</item>

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение rezak90 » 22 май 2013, 21:35

worldmen писал(а):
rezak90 писал(а):id, которые указаны в том файле который инфлейтили в методе onCreateOptionsMenu
Это если меню добавлялось программно: menu.add(0, 1, 0, "add");
А если меню создавалось из xml-файла? Там id - это текст:

Код: Выделить всё

<item
 android:id="@+id/menu_add"
 android:title="add">
</item>
где вы текст видите? id будет таким - R.menu.menu_add (подчёркивания не рекомендую использовать в именах id)
R.id.team
Политика на форуме запрещена

sgtraf
Сообщения: 7
Зарегистрирован: 16 май 2013, 21:28

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение sgtraf » 14 авг 2013, 16:59

Обязательно тут метод суперкласса вводить?

Код: Выделить всё

public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.mymenu, menu);
    return super.onCreateOptionsMenu(menu);
  }


itAp34
Сообщения: 8
Зарегистрирован: 09 окт 2013, 22:05

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение itAp34 » 09 окт 2013, 22:11

Доброго вечера.
Имею небольшой "затык" при работе с меню через Xml: скопипастил xml-ку из урока - отображается нормально, но при любой попытке работать с ним программно (методы onPrepareOptionsMenu и onOptionsItemSelected) получаю exception.
Видимо где то затупил, но где и как... Буду рад подсказке бывалых )

itAp34
Сообщения: 8
Зарегистрирован: 09 окт 2013, 22:05

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение itAp34 » 10 окт 2013, 20:45

itAp34 писал(а):Доброго вечера.
Имею небольшой "затык" при работе с меню через Xml: скопипастил xml-ку из урока - отображается нормально, но при любой попытке работать с ним программно (методы onPrepareOptionsMenu и onOptionsItemSelected) получаю exception.
Видимо где то затупил, но где и как... Буду рад подсказке бывалых )
Вопрос снимается - разобрался, "сам дурак" )

mihalis
Сообщения: 17
Зарегистрирован: 28 ноя 2013, 23:32

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение mihalis » 01 дек 2013, 19:19

Каким образом в IDE можно добавлять в код активити конструкторы для методов onPrepareOptionsMenu, onOptionsItemSelected и других?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение Foenix » 01 дек 2013, 19:56

начинаешь набирать и нажимаешь ctrl+пробел
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

mihalis
Сообщения: 17
Зарегистрирован: 28 ноя 2013, 23:32

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение mihalis » 01 дек 2013, 20:51

Спасибо туплю. Начинал набирать "public boolean onCr" , только потом ctrl+пробел и ничего не получалось.
Кстати, кто подскажет зачем этот метод (onCreateOptionsMenu и другие) возвращает boolean? Почему не просто void?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение Foenix » 01 дек 2013, 21:04

http://developer.android.com/reference/ ... view.Menu)
по таким вопросам - вот на этот сайт добро пожаловать.
Returns
You must return true for the menu to be displayed; if you return false it will not be shown.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

mihalis
Сообщения: 17
Зарегистрирован: 28 ноя 2013, 23:32

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение mihalis » 01 дек 2013, 21:24

Спасибо. Это я тоже видел. Поставлю вопрос по другому. В чем фишка получать этот true таким образом:

Код: Выделить всё

return super.onCreateOptionsMenu(menu);

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение Foenix » 01 дек 2013, 21:53

это не "получать", это вызов метода суперкласса!!!
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

mihalis
Сообщения: 17
Зарегистрирован: 28 ноя 2013, 23:32

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение mihalis » 01 дек 2013, 23:51

Можешь пояснить? Или ткнуть носом где прочитать. Почему не просто написать return true&

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение Foenix » 02 дек 2013, 07:09

Потому, что нужно вначале выполнить метод суперкласса, а затем, возвращать значение. Если написать то, что ты сказал, то метод суперкласса не сработает. При этом возможно ошибка или то, что компонент вообще не появится на экране (смотря что в этом методе содержится).
Гугли по словам ООП наследование.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

mihalis
Сообщения: 17
Зарегистрирован: 28 ноя 2013, 23:32

Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.

Сообщение mihalis » 02 дек 2013, 20:18

Foenix писал(а):Потому, что нужно вначале выполнить метод суперкласса, а затем, возвращать значение. Если написать то, что ты сказал, то метод суперкласса не сработает. При этом возможно ошибка или то, что компонент вообще не появится на экране (смотря что в этом методе содержится).
Гугли по словам ООП наследование.
Я имею некое представление о наследовании в ООП. В упор не понимаю при чем оно здесь. Вот гайд на андройд девелоперс. Это приведенный пример. Возвращают просто true.

Код: Выделить всё

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.game_menu, menu);
    return true;
}

Ответить