Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Спасибо. Все получилось )))
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
123123
Последний раз редактировалось Sakralbar 18 ноя 2020, 22:09, всего редактировалось 1 раз.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Это ID, которые сгенерил Eclipse. Мы его попросили об этом, когда написали android:id="@+id/menu_add".Sakralbar писал(а):в результате при отображении строки в textview, получается ересь на местах itemID(для всех item'ов) и groupID(для group1)
Вы можете заглянуть в файл R.java, который генерится автоматически и там увидите эти числа, только в шестнадцатеричном виде.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
у меня такой общий вопрос по поводу меню: как сделать одно общее меню на все активити, что бы не прописывать в каждом активити создание меню? может можно как то реализовать отдельный класс а потом в активити его подключать?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Присоединюсь к вопросу, так как ответ не совсем удовлетворил. )damager82 писал(а):Это ID, которые сгенерил Eclipse. Мы его попросили об этом, когда написали android:id="@+id/menu_add".Sakralbar писал(а):Вопрос: при задании меню через xml, мы задали одной из групп id group1 (я так понимаю, другой группе присвоилось значение 0 автоматически). id всех элементов в меню представляют собой также строки. при этом методы getItemId, getGroupId возвращают значение int. в результате при отображении строки в textview, получается ересь на местах itemID(для всех item'ов) и groupID(для group1). Как исправить? Кто-то еще сталкивался с такой проблемой?
Вы можете заглянуть в файл R.java, который генерится автоматически и там увидите эти числа, только в шестнадцатеричном виде.
Насколько я понимаю, то, что генерится в файле R.java - это значение адреса в памяти для параметра из xml-файла. Тип этого значения - int. Это значение мы и получаем в этом месте
sb.append("\r\n groupId: " + String.valueOf(item.getGroupId()));
поскольку item.getGroupId() возвращает нам именно int.
Но проблема в том, чтобы для выбранного пункта меню вывести на экран string-значение, которое мы прописали в xml-файле, например здесь
<group android:id="@+id/group1" >
то есть вывести именно текст group1 !!!
Точно так же для
android:id="@+id/menu_add"
вывести на экран текст menu_add.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
rezak90 писал(а):у меня такой общий вопрос по поводу меню: как сделать одно общее меню на все активити, что бы не прописывать в каждом активити создание меню? может можно как то реализовать отдельный класс а потом в активити его подключать?
Код: Выделить всё
public class MenuActivity extends Activity {
// Работа с общим меню, в манифесте не прописывается
}
Код: Выделить всё
public class MainActivity extends MenuActivity {
// Главная Activity - работа с меню уже запрограммирована
}
Код: Выделить всё
public class SecondActivity extends MenuActivity {
// Вторая Activity - работа с меню уже запрограммирована
}
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Для того, чтобы получить ресурс по имени (на примере каритинки):vatanebe писал(а):Но проблема в том, чтобы для выбранного пункта меню вывести на экран string-значение, которое мы прописали в xml-файле, например здесь
<group android:id="@+id/group1" >
то есть вывести именно текст group1 !!!
Точно так же для
android:id="@+id/menu_add"
вывести на экран текст menu_add.
Код: Выделить всё
int id = getResources().getIdentifier(drawableName,
"drawable", getPackageName());
drawable = getResources().getDrawable(id);
Код: Выделить всё
try {
String resName = getResources().getResourceName(resid);
int index = resName.indexOf(':');
String packageName = resName.substring(0, index);
int index2 = resName.indexOf('/');
String typeName = resName.substing(index+1,index2);
String entryName = resName.substring(index2+1, resName.length());
} catch (NotFoundException e) {
// Ресурс не найден
}
Код: Выделить всё
String message = "Была нажата кнопка "+item.getTitle();
Toast.makeText(this, message, Toast.LENGTH_SHORT)
.show();
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Здравствуйте, видел в єтой теме вопрос, но не видел на него ответа.
Создаю по вашему уроку меню, но мне оно лезет в ряд, тоисть например 4 штуки, друг за другом. А нужно 2 ряда по 2 и внизу. Версия SDK 15, Android 4, как манипулировать способом отображения меню?
Спасибо.
Создаю по вашему уроку меню, но мне оно лезет в ряд, тоисть например 4 штуки, друг за другом. А нужно 2 ряда по 2 и внизу. Версия SDK 15, Android 4, как манипулировать способом отображения меню?
Спасибо.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Неочень вас понял, распишите более детально что вы хотите, а что есть на деле у вас ??JDev писал(а):Здравствуйте, видел в єтой теме вопрос, но не видел на него ответа.
Создаю по вашему уроку меню, но мне оно лезет в ряд, тоисть например 4 штуки, друг за другом. А нужно 2 ряда по 2 и внизу. Версия SDK 15, Android 4, как манипулировать способом отображения меню?
Спасибо.
А вообще меню кастомизировать тяжко...Вы юзаете OptionsMenu, ContextMenu или PopupMenu ??
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
http://developer.android.com/guide/topics/ui/menus.html на все вкусы меню, и я так понял вам нужно сгруппировать меню, тогда подпункт Creating Menu GroupsJDev писал(а):Здравствуйте, видел в єтой теме вопрос, но не видел на него ответа.
Создаю по вашему уроку меню, но мне оно лезет в ряд, тоисть например 4 штуки, друг за другом. А нужно 2 ряда по 2 и внизу. Версия SDK 15, Android 4, как манипулировать способом отображения меню?
Спасибо.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Я хочу получить такое же меню как в этом уроке.
тоисть если обозначить крестиком пункт меню, то в уроке получается вот так:
----------
| |
| |
| |
| x x x |
| x x x |
-----------
а у меня получается вот так:
тиком пункт меню, то в уроке получается вот так:
----------
| |
| x |
| x |
| x |
| x |
| x |
| x |
-----------
Самое главное OptionsMenu где в эмуляторе на кнопку Menu жмется.
Спасибо.
тоисть если обозначить крестиком пункт меню, то в уроке получается вот так:
----------
| |
| |
| |
| x x x |
| x x x |
-----------
а у меня получается вот так:
тиком пункт меню, то в уроке получается вот так:
----------
| |
| x |
| x |
| x |
| x |
| x |
| x |
-----------
Самое главное OptionsMenu где в эмуляторе на кнопку Menu жмется.
Спасибо.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Да, видел я это, дык дело в том, что делаю все так же, а оно все в один ряд.rezak90 писал(а):http://developer.android.com/guide/topics/ui/menus.html на все вкусы меню, и я так понял вам нужно сгруппировать меню, тогда подпункт Creating Menu GroupsJDev писал(а):Здравствуйте, видел в єтой теме вопрос, но не видел на него ответа.
Создаю по вашему уроку меню, но мне оно лезет в ряд, тоисть например 4 штуки, друг за другом. А нужно 2 ряда по 2 и внизу. Версия SDK 15, Android 4, как манипулировать способом отображения меню?
Спасибо.
В моем визуальном изображении меню между крестиками должны быть пробелы... Я думаю так понятно, если нет, выставлю скриншоты.
Я как бы с Явой дружу неплохо, а вот сегодня начал Android ковырять, многие нюансы пока непонятны... Вот.. как этот..
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Не получается все-равно.
Вот меню:
Картинок не берет, причем картинки в формате png и с маленькой буквы поместил во все папки "drawable".
Выдает меню снизу в формате
-------
reisen
-------
help
-------
а мне нужно в формате
reisen | help
снизу растянуто на всю ширину.
Вот меню:
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/reisen"
android:icon="@drawable/reisen"
android:title="@string/reisen"/>
<item
android:id="@+id/help"
android:icon="@drawable/help"
android:title="@string/help"/>
</menu>
Выдает меню снизу в формате
-------
reisen
-------
help
-------
а мне нужно в формате
reisen | help
снизу растянуто на всю ширину.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Не знаю как в Андроид 4, а в 2.3.3 этим управлять нельзя -если влезет по длине строк, будет 2 строки по 3 пункта, если текст слишком длинный - будет 3 строки по 2 пункта, 6 строк по 1 пункту (как у тебя) - не будет никогда, не влезающий текст будет обрезан. Т.е. на разных устройствах меню может выглядеть по разному. Если нужен одинаковый вид на всех устройствах - используй PopupWindow.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Понимаю, дык обычное меню, может в 4 оно поменялось, буду ждать, может кто знает что к чему, может кто сталкивался.
Спасибо за ответ.
Спасибо за ответ.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
странно, но у меня показывает все шесть элементов меню в любом случае - отмечен чекбокс или нет.
2JDev насколько я понял это фишка ICS
2JDev насколько я понял это фишка ICS
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Нашел ошибку, все работает.npocma4ok писал(а):странно, но у меня показывает все шесть элементов меню в любом случае - отмечен чекбокс или нет.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Доброго времени суток!math64 писал(а):rezak90 писал(а):у меня такой общий вопрос по поводу меню: как сделать одно общее меню на все активити, что бы не прописывать в каждом активити создание меню? может можно как то реализовать отдельный класс а потом в активити его подключать?Код: Выделить всё
public class MenuActivity extends Activity { // Работа с общим меню, в манифесте не прописывается }
Код: Выделить всё
public class MainActivity extends MenuActivity { // Главная Activity - работа с меню уже запрограммирована }
Код: Выделить всё
public class SecondActivity extends MenuActivity { // Вторая Activity - работа с меню уже запрограммирована }
Уважаемые "жители" форума, подскажите новичку...
Актуально на самом деле ... Есть идея создать вверху всех Активити панель, так сказать общее меню (как например в Windows программах, Файл, Вид, Сервис, Справка и т.д.) И, если класс обработки этого меню можно подключать как SecondActivity extends MenuActivity, то ...
1. Вопрос - Если у MainActivity уже есть extends ListActivity, как мне к нему еще привязать класс MenuActivity ?
2. Вопрос - Как это реализовывается в xml? Надо в каждом layout копипастить панель? Или есть возможность в сам xml вставлять ссылку на другой xml?
Мозгом понимаю, что должно быть все просто и приятно ...
Заранее спасибо за ответ.
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
Чтобы включить в разметку xml содержимое другой разметки нужно использовать тэг include
к примеру, у нас имеется файл с разметкой menu.xml помещаем следующий фрагмент в нужное место
Первый вопрос не понял. Что за класс MenuActivity?
к примеру, у нас имеется файл с разметкой menu.xml помещаем следующий фрагмент в нужное место
Код: Выделить всё
<include
layout="@layout/menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Re: Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
За второй вопрос - Спасибо большое.AndreyI писал(а):Чтобы включить в разметку xml содержимое другой разметки нужно использовать тэг include
к примеру, у нас имеется файл с разметкой menu.xml помещаем следующий фрагмент в нужное местоПервый вопрос не понял. Что за класс MenuActivity?Код: Выделить всё
<include layout="@layout/menu" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
По поводу первого ...
Есть идея создать вверху всех Активити панель (это второй вопрос:)), так сказать общее меню (как например в Windows программах, Файл, Вид, Сервис, Справка и т.д.)
Можно ли 1 раз написать класс, который будет отрабатывать эту панель (слушатель нажатия на кнопки и т.д.) и дальше во всех активити приложения просто подключать этот класс. Т. е. не переписывать в каждом активити заново слушатели на меню.
Заранее спасибо