Страница 1 из 10
Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Добавлено: 08 сен 2011, 03:00
damager82
В этом уроке мы:
- создаем пункты меню c ID
- группируем и сортируем пункты меню
Click here to read this article!
Re: Урок 14. Меню, группы, порядок.
Добавлено: 09 янв 2012, 15:37
damager82
Re: Урок 14. Меню, группы, порядок.
Добавлено: 11 янв 2012, 08:24
Mikhail_dev
Такой вопрос. Вызывается ли onPrepareOptionsMenu при первом нажатии на меню? Ведь по сути оно не только создается, но и отображается.
Re: Урок 14. Меню, группы, порядок.
Добавлено: 11 янв 2012, 10:40
damager82
Да, это метод вызывается каждый раз, в том числе и при первом нажатии menu.
Re: Урок 14. Меню, группы, порядок.
Добавлено: 08 фев 2012, 16:42
inn_ko
Возник вопрос - стандартное меню в одной строке содержит только 3 элемента, а есть ли возможность в ряд расположить 4-5 кнопок (menuItem ) , чтобы не образовывался второй ряд меню без использования action bar?
Re: Урок 14. Меню, группы, порядок.
Добавлено: 16 фев 2012, 20:25
Litke
Здравствуйте!
Выполнил все, как написано, а TextView не обновляется! и у вас в уроке результаты работы onOptionsItemSelected не показаны.
Re: Урок 14. Меню, группы, порядок.
Добавлено: 17 фев 2012, 13:20
damager82
Litke писал(а):Здравствуйте!
Выполнил все, как написано, а TextView не обновляется! и у вас в уроке результаты работы onOptionsItemSelected не показаны.
Странно. Я только что создал новый проект, вставил xml и код и работает. При нажатии на пункт меню на экране появляется текст с данными о нем.
Кто-нить еще делал этот урок? У вас работает?
А результаты onOptionsItemSelected действительно не показаны. Позже добавлю скрин. Спасибо!
Re: Урок 14. Меню, группы, порядок.
Добавлено: 29 фев 2012, 10:31
Sapfil
Litke писал(а):Здравствуйте!
Выполнил все, как написано, а TextView не обновляется! ...
Привет. У меня такое было из-за того что я забыл вот такую строчку:
Код: Выделить всё
tv1 = (TextView)findViewById(R.id.textView1);
Скорее всего вы тоже забыли что-то добавить.
Re: Урок 14. Меню, группы, порядок.
Добавлено: 27 мар 2012, 15:50
DreamVan
Добрый день.
Есть проблемка. Выполняю всё как указано в уроке 13 и уроке 14, но кроме CheckBox и TextView больше ничего не отображается, ни одного пункта меню, без разницы в каком состоянии чекбокс. Думал что-то не дописал, сделал копи-паст и опять ничего. Использую Eclipse- Indigo.
Помогите разобраться))
Re: Урок 14. Меню, группы, порядок.
Добавлено: 27 мар 2012, 17:19
KamiSempai
В этом уроке рассказывается про меню, вызываемое по кнопке "Menu". Если её нажать, оно появится
Re: Урок 14. Меню, группы, порядок.
Добавлено: 31 мар 2012, 14:16
DreamVan
KamiSempai писал(а):В этом уроке рассказывается про меню, вызываемое по кнопке "Menu". Если её нажать, оно появится
Спасибо огромное, а то уже не знал где проблему искать))
Re: Урок 14. Меню, группы, порядок.
Добавлено: 16 май 2012, 15:51
Xgraf
Могли бы Вы подробнее рассказать о способе создания меню -
http://developer.android.com/guide/topics/ui/menus.html
там не совсем понятно написано для новичка.
(особенно интересует именно создание меню, где используются иконки)
Заранее благодарен!
Re: Урок 14. Меню, группы, порядок.
Добавлено: 17 май 2012, 12:42
damager82
В смысле создание меню из xml-файлов? Да, чет я пропустил в свое время эту фишку.
Товарищи разрабы, может быть кто-нить возьмется и на форуме в разделе Наработки чего-нить наваяет на эту тему? Отпишитесь сюда, если беретесь. Если до выходных желающих не будет, то сам накидаю пример.
Re: Урок 14. Меню, группы, порядок.
Добавлено: 18 май 2012, 12:39
AndreyI
inn_ko писал(а):Возник вопрос - стандартное меню в одной строке содержит только 3 элемента, а есть ли возможность в ряд расположить 4-5 кнопок (menuItem ) , чтобы не образовывался второй ряд меню без использования action bar?
На платформе Андроид 4.0.3 (API15) это меню вообще отображается в виде строк.
Re: Урок 14. Меню, группы, порядок.
Добавлено: 18 май 2012, 20:26
AndreyI
damager82 писал(а):
В смысле создание меню из xml-файлов? Да, чет я пропустил в свое время эту фишку.
Вообще-то, если придерживаться одной методологии изложения, то как раз таки лучше с этой "фишки" начать знакомство с меню и указать как основной способ, а уже программные способы создания рассмотреть как дополнение. Меню являются частью ресурсов любого приложения (и не только Андроид) и при хорошем стиле программирования они должны именно так и определяться.
Ведь цель любого учебника не только доводить (я бы сказал, не столько) до читателя информацию, но и прививать хорошие стили программирования, заложить так сказать фундамент. Если не прав, можете кинуть в меня камень
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Добавлено: 21 май 2012, 11:17
damager82
Добавил в
урок 14 немного материала на тему xml-меню.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Добавлено: 29 май 2012, 20:53
mexo
Скажите пожалуйста. Я создал меню из урока только в режиме xml. Проблема в том что, после того как я поставил галочку на расширенное меню оно вылезает и после того как я снимаю галку то оно не переходит в простой режим меню. И еще хотелось бы узнать как можно подключить текст что бы при выборе меню в text view отображалось его название. Может это глупые вопросы но у меня не получилось сделать самому ((( Спасибо.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Добавлено: 30 май 2012, 09:40
damager82
mexo писал(а):Проблема в том что, после того как я поставил галочку на расширенное меню оно вылезает и после того как я снимаю галку то оно не переходит в простой режим меню.
А что у вас в методе onPrepareOptionsMenu написано?
mexo писал(а):И еще хотелось бы узнать как можно подключить текст что бы при выборе меню в text view отображалось его название.
Я в уроке вывожу в TextView параметры нажатого пункта меню и один из них - название (title).
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Добавлено: 30 май 2012, 09:47
mexo
1 - public boolean onPrepareOptionsMenu(Menu menu) {
menu.setGroupVisible(1, knopka.isChecked());
return super.onPrepareOptionsMenu(menu);
}
-------------------------------------------------------------------------
2 - Я же пишу код на XML. Вы привели пример в активити. Можно код для xml?
Вот мой код :
package mexo.test.xmlmenu;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.CheckBox;
public class MenuActivity extends Activity {
/** Called when the activity is first created. */
CheckBox knopka;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
knopka = (CheckBox) findViewById(R.id.chkBox);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.setGroupVisible(1, knopka.isChecked());
return super.onPrepareOptionsMenu(menu);
}
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.mymenu, menu);
return super.onCreateOptionsMenu(menu);
}
}
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Добавлено: 30 май 2012, 10:12
damager82
XML-компоновка меню отличается от программной только разным кодом в onCreateOptionsMenu.
Если создаем программно, то выполняем meun.add кучу раз и указываем параметры пунктов меню.
Если у нас XML, то MenuInflater читает xml-файл и сам все за нас создает.
Все остальное никак не отличается. И вывод в TextView информации о пункте меню будет работать в обоих случаях.
А вот группу в методе setGroupVisible вы указываете неверно. Вы указываете 1 в качестве ID группы, которую хотите скрыть/показать. Это работало когда мы создавали программно пункты меню и в качестве группы указывали им 1. Но в xml-файле мы указываем для группы другой ID
<group android:id="@+id/group1" >. Соответственно я в уроке в конце пишу:
Если захотите скрыть группу, выполняете тот же метод setGroupVisible и передаете туда R.id.group1 в качестве ID группы.