Урок 13. Создание простого меню

Обсуждение уроков
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 13. Создание простого меню

Сообщение damager82 » 05 сен 2011, 03:00

В этом уроке мы:
- создаем пункты меню
 


Click here to read this article!
Последний раз редактировалось damager82 11 дек 2017, 23:23, всего редактировалось 9 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Урок 13. Создание простого меню

Сообщение Mikhail_dev » 10 янв 2012, 18:35

Не пойму немного. Мы меню должны рисовать в XML или должны создать объект какого-либо класса, который и реализует этот интерфейс Menu? У меня в примере не появляется меню, ибо мы не создали никакого объекта меню, а лишь описали методы, на сколько я понял.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 13. Создание простого меню

Сообщение damager82 » 10 янв 2012, 20:32

Метод onCreateOptionsMenu вызывается системой, и в него передается объект Menu. А наша задача - наполнить его пунктами.
You should place your menu items in to menu
У меня работает. Нажимаю кнопку menu на эмуляторе и меню отображается.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Урок 13. Создание простого меню

Сообщение Mikhail_dev » 10 янв 2012, 21:04

Ой, прошу прощения. Я почему-то невнимательно прочитал то, что нужно меню нажать в эмуляторе, думал оно сразу отображаться должно =) У самого еще пока нету телефона на андроиде, поэтому не очень осведомлен. :)

Аватара пользователя
chuikoff
Сообщения: 17
Зарегистрирован: 30 мар 2012, 10:20
Откуда: Камчатка
Контактная информация:

Re: Урок 13. Создание простого меню

Сообщение chuikoff » 30 мар 2012, 15:04

Спасибо за статью, понятно и интересно!
Ещё тут http://developer.android.com/guide/topics/ui/menus.html написано что можно сделать меню путём создания menu.xml и вообще с помощью разметки. Можете как-то прокомментировать это? Как лучше?
Разработка сайтов любой сложности.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 13. Создание простого меню

Сообщение damager82 » 02 апр 2012, 09:20

По идее, с XML проще. Кода точно меньше получится.

Возможно гибкости чуть больше у программного способа, но ненамного.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

daiz123
Сообщения: 18
Зарегистрирован: 11 июн 2012, 15:42

Re: Урок 13. Создание простого меню

Сообщение daiz123 » 11 июн 2012, 16:23

У вас все методы созданы автоматически судя по этой надписи // TODO Auto-generated method stub , подскажите как вы это делаете,а то я всё набираю вручную. Спасибо

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 13. Создание простого меню

Сообщение damager82 » 13 июн 2012, 10:35

daiz123 писал(а):У вас все методы созданы автоматически судя по этой надписи // TODO Auto-generated method stub , подскажите как вы это делаете,а то я всё набираю вручную. Спасибо
Допустим, хотите реализовать метод onDestroy.

1) Начинаете набирать текст "ondes", затем жмете CTRL+пробел - он предложит варианты. Выбираете onDestroy.

2) Либо жмете ALT+SHIFT+S, выбираете Override/Implement methods, выбираете onDestroy, жмете ОК
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Тын-Тын
Сообщения: 1
Зарегистрирован: 29 мар 2012, 16:32

Re: Урок 13. Создание простого меню

Сообщение Тын-Тын » 28 июн 2012, 18:32

Объясните,я уже и сам печатал,и тупо копировал полный код, в Activity полно ошибок выдает,подскажите, что делаю не так?

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 13. Создание простого меню

Сообщение damager82 » 29 июн 2012, 15:52

Тын-Тын писал(а):Объясните,я уже и сам печатал,и тупо копировал полный код, в Activity полно ошибок выдает,подскажите, что делаю не так?
Весь проект можете экспортнуть, выложить куданить и сюда ссылку кинуть? Поглядим.
Если нет, то код Activity и скрин раскрытого дерева проекта постите.

И создайте тему здесь, плз - viewforum.php?f=39
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

Re: Урок 13. Создание простого меню

Сообщение math64 » 20 июл 2012, 11:10

OnCreateOptionsMenu() вызывается только один раз.
Если его нужно изменить, переопределяйте метод onPrepareOptionsMenu():

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

	@Override
	public boolean onPrepareOptionsMenu(Menu menu) {
		menu.clear();
		getMenuInflater().inflate(R.menu.otions_menu, menu);
		for (String word : lastWords)
			menu.add(word);
		return true;
	}

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

Re: Урок 13. Создание простого меню

Сообщение math64 » 31 июл 2012, 10:57

У MenuItem есть свойства checkable и checked. Как с ними работать?
При вызове menuItem.setChecked(true); в onPrepareOptionsMenu(Menu menu) флажок не появляется - android:checkable="true" прописано в xml.

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

Re: Урок 13. Создание простого меню

Сообщение math64 » 02 авг 2012, 08:41

C простым меню checked не поддерживается - только в контекстном меню, внутри группы.
В onPrepareOptionsMenu можно использовать setIcon() вместо этого.

Blockhead
Сообщения: 4
Зарегистрирован: 20 авг 2012, 10:06

Re: Урок 13. Создание простого меню

Сообщение Blockhead » 20 авг 2012, 10:11

А возможно дописать урок рассказав как можно одно меню разместит на нескольких активити?

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

Re: Урок 13. Создание простого меню

Сообщение math64 » 20 авг 2012, 13:10

Blockhead писал(а):А возможно дописать урок рассказав как можно одно меню разместит на нескольких активити?
Это уже не относится к программированию в Андроиде а к ООП вообще, поэтому в уроках вряд ли нужно объяснять.
Создаёшь класс BaseActivity extends Activity, где переопределяешь методы onCreateOptionsMenu(), onOptionsItemSelected() и т.д.
От него определяешь MainActivity extends BaseActivity, Activity2 BaseActivity и т.д.
Если уже есть MainActivity extends Activity и хочешь так его переделать, используй рефакторинг Extract SuperClass... для создания класса BaseActivity.

Overdos
Сообщения: 33
Зарегистрирован: 09 авг 2012, 20:58
Откуда: Краснодар

Re: Урок 13. Создание простого меню

Сообщение Overdos » 22 авг 2012, 21:50

Помогите у меня ни чего нет! ))Изображение

k.chaiko
Сообщения: 21
Зарегистрирован: 02 авг 2012, 17:23

Re: Урок 13. Создание простого меню

Сообщение k.chaiko » 22 авг 2012, 22:33

когда жмешь на кнопку меню оно не открывается или что ??

Overdos
Сообщения: 33
Зарегистрирован: 09 авг 2012, 20:58
Откуда: Краснодар

Re: Урок 13. Создание простого меню

Сообщение Overdos » 22 авг 2012, 23:33

нет (

Overdos
Сообщения: 33
Зарегистрирован: 09 авг 2012, 20:58
Откуда: Краснодар

Re: Урок 13. Создание простого меню

Сообщение Overdos » 23 авг 2012, 12:06

к тому же , нет кнопки меню! че за бред.

zlo-vred
Сообщения: 1
Зарегистрирован: 27 авг 2012, 08:12

Re: Урок 13. Создание простого меню

Сообщение zlo-vred » 27 авг 2012, 08:26

Overdos писал(а):к тому же , нет кнопки меню! че за бред.
У меня справа не отображается виртуальная клавиатура, поэтому пользуюсь F2 - Menu, Esc - Back, Home - Home.
Виртуальная клавиатура появляется только для стандартных экранов, QVGA например.
http://developer.android.com/tools/help/emulator.html - Здесь про соответствующие клавиши подробно (Эта ссылка была в 3-м уроке).

Ответить