Страница 9 из 10

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

Добавлено: 27 фев 2015, 06:57
klblk
Foenix писал(а):На самом деле все это бесполезно. Компилятор и иак все плюсы переводит к StringBuilder- у
В данном случае полезно и оптимизация mikekekeke имеет место быть. Если бы там вся строка через "+" была написана то да, без разницы.
а так получаем 4 промежуточных StringBuilder'а, а уже потом добавляются к исходному StringBuilder'у.

Re: Урок 14. Меню, группы, порядок.

Добавлено: 03 мар 2015, 14:50
Алемарика
У меня снова идеологический вопрос. Как лучше создавать меню - программно или через xml? И как в будущем определить, что лучше создавать какие-то объекты. (загуглить не удалось)

С одной стороны, нашла такой коммент:
AndreyI писал(а):
damager82 писал(а): В смысле создание меню из xml-файлов? Да, чет я пропустил в свое время эту фишку.
Вообще-то, если придерживаться одной методологии изложения, то как раз таки лучше с этой "фишки" начать знакомство с меню и указать как основной способ, а уже программные способы создания рассмотреть как дополнение. Меню являются частью ресурсов любого приложения (и не только Андроид) и при хорошем стиле программирования они должны именно так и определяться.
Ведь цель любого учебника не только доводить (я бы сказал, не столько) до читателя информацию, но и прививать хорошие стили программирования, заложить так сказать фундамент. Если не прав, можете кинуть в меня камень ;)
С другой стороны, про обработку кнопки, наоборот, не советовалось делать через xml
klblk писал(а):
Через xml может быть и просто, но...
....
1) Подход через интерфейсы более подходит для Java (и так как любой Android разработчик отчасти Java разработчик это ему удобнее)
2) Когда что-то происходит неявно, это не очень хорошо. Например над проектом работает два человека. Пусть это вы, кто делает обработчики в XML и кто-то, кто так не делает. Пусть тот второй напишет обработчик как он привык. Вы смотрите его код: о кнопка, о обработчик кнопки, все понятно. Теперь вы сделали через xml. Второй смотрит ваш код. О функция "onClickStart()", нигде не используется, пожалуй ее можно удалить. И он удалит и после этого проект даже может быть собирется (хотя я не проверял), но приложение точно упадет при нажатии этой злополучной кнопки. Если же реализовать все явно через интерфейсы, то: а) удалите интерфейс, ide начнет ругаться на setOnClickListener и @Override у метода onClick; б) удалите метод onClick - будет ругаться на отсутствие метода; в) а setOnClickListener вы не удалите, потому что в этой строчке четко и ясно говорится что назначается слушатель для кнопки.
3) xml это внешний вид, программирование оставьте для Java

а вообще пятница, вечер я устал, не слушайте меня.
Видение мира раздвоилось. Помогите собрать, пожалуйста!

P.s. Я понимаю, что меню и обработчик кнопки совсем разные вещи. Я не понимаю, по какому критерию определить что куда совать..

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

Добавлено: 04 мар 2015, 07:03
klblk
То что относится к созданию интерфейса (UI) и к ресурсам по возможности описывать в xml. То что касается логики делать в Java.
Саму кнопку описываете в XML, обработчик этой кнопки в JAVA.
Также и с меню. Описание в XML. Обработка нажатий в Java.

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

Добавлено: 04 мар 2015, 13:14
Алемарика
klblk писал(а):То что относится к созданию интерфейса (UI) и к ресурсам по возможности описывать в xml. То что касается логики делать в Java.
Саму кнопку описываете в XML, обработчик этой кнопки в JAVA.
Также и с меню. Описание в XML. Обработка нажатий в Java.
Четко, понятно, по делу. Спасибо большое!

Re: Урок 14. Меню, группы, порядок.

Добавлено: 17 мар 2015, 15:17
mikekekeke
Алемарика писал(а):
С другой стороны, про обработку кнопки, наоборот, не советовалось делать через xml
На developer.android.com даётся вообще один способ создания обработчика для кнопки - через XML (в смысле привязки обработчика к кнопке)

Re: Урок 14. Меню, группы, порядок.

Добавлено: 18 мар 2015, 08:02
klblk
mikekekeke писал(а):
Алемарика писал(а):
С другой стороны, про обработку кнопки, наоборот, не советовалось делать через xml
На developer.android.com даётся вообще один способ создания обработчика для кнопки - через XML (в смысле привязки обработчика к кнопке)
два: http://developer.android.com/reference/ ... utton.html

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

Добавлено: 18 мар 2015, 22:21
mikekekeke
klblk писал(а):
mikekekeke писал(а):
Алемарика писал(а):
С другой стороны, про обработку кнопки, наоборот, не советовалось делать через xml
На developer.android.com даётся вообще один способ создания обработчика для кнопки - через XML (в смысле привязки обработчика к кнопке)
два: http://developer.android.com/reference/ ... utton.html
Ох... Я судил по вводному курсу просто. А почему 3й вариант с интерфейсом не даётся? Вроде как он более экономичный в плане памяти (мне просто интересно =) )

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

Добавлено: 19 мар 2015, 08:04
klblk
mikekekeke писал(а):Ох... Я судил по вводному курсу просто. А почему 3й вариант с интерфейсом не даётся? Вроде как он более экономичный в плане памяти (мне просто интересно =) )
Потому что developer.android.com это документация. Главное рассказать разработчику, что есть такой интерфейс, а как его можно использовать он знает. Startandroid.ru это же учебник, и многие сюда приходят, даже не знаю элементарную Java-базу и им приходится всё разжёвывать. А имплемментить интерфейс классу или создавать отдельный экземпляр интерфейса зависит от задачи и решения разработчика.

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

Добавлено: 08 апр 2015, 15:06
kuller
Выполняю данный урок. Когда приложение тестирую на телефоне и нажимаю кнопку меню. приложение закрывается с текстом (В приложении "P0141_MenuAdv" произошла ошибка.) и что делать? я вообще в потере в такой ситуации...

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

Добавлено: 08 апр 2015, 16:54
doter.ua
kuller писал(а):Выполняю данный урок. Когда приложение тестирую на телефоне и нажимаю кнопку меню. приложение закрывается с текстом (В приложении "P0141_MenuAdv" произошла ошибка.) и что делать? я вообще в потере в такой ситуации...
Найди феникса и посмотри в подпись :lol:

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

Добавлено: 10 июл 2015, 11:04
twt494
Такая проблема. задний фон меню становиться прозрачным. когда пункты добавляю

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

 
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);

        menu.add("menu1");
        menu.add("menu2");
        menu.add("menu3");

        return true;
    }
все норм. есть задний фон. меняю код или даже если просто в новом проекте пишу

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);

        menu.add(0,3,1,"menu1");
        menu.add(0,4,5,"menu2");
        menu.add(0,2,3,"menu3");

        return true;
    }
фон становится прозрачным. и после это есл даже поменяю код menu.add("menu1"); все равно фон остается прозрачным.

в чем проблема?

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

Добавлено: 22 июл 2015, 22:29
Andrewsolo
Допустим имеется меню, структура которого изменяется в процессе работы, в меню есть пункты с чекбоксами.
Как организовать сохранение состояния чекбоксов в пунктах меню при перестройке структуры?

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

Добавлено: 05 авг 2015, 16:51
driversti
Привет всем. В видео уроке №14 Виталий задал домашнее задание, чтобы скрывать группу пунктов меню или один пункт меню с помощью чекбоксов без нажатия на три точки в Action Bar и вызова onPrepareOptionsMenu(Menu menu). Насколько я понял, эти действия должны выполнятся в методе onCreate(). Если да, то нам нужно создать переменную Menu menu и связать её с xml-файлом. Я правильно понимаю? Но как это сделать?
Таким образом

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

menu = (Menu) findViewById(R.menu.menu_main)
это не работает. Без метода findViewById() также. Что я не делаю не так? Или должен быть другой метод? Но как мне знать какой?

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

Добавлено: 29 авг 2015, 16:17
Владислав2303
Вот такой вопрос у меня возник. Сделал все по уроку и пришла в голову идея не скрывать меню после нажатия на один из пунктов. Поясню: хочу сделать, чтобы меню можно было закрыть только по кнопке меню, ну или back. Гугл ничего не рассказал, но натолкнул на одну интересную вещь. У класса menu есть константа FLAG_ALWAYS_PERFORM_CLOSE (http://developer.android.com/reference/ ... /Menu.html), и эта константа используется как флаг в методе performShortcut (int keyCode, KeyEvent event, int flags), но после долгих размышлений не до конца понимаю что за метод, и как эту информацию мне использовать. Кто поможет из опытных?

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

Добавлено: 29 авг 2015, 22:57
doter.ua
Может лучше сразу navigation drawer(боковое меню) сделать или диалог? это меню не такое уж и удобное чтобы постоянно висеть.

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

Добавлено: 30 авг 2015, 00:19
Владислав2303
doter.ua писал(а):Может лучше сразу navigation drawer(боковое меню) сделать или диалог? это меню не такое уж и удобное чтобы постоянно висеть.
Я понял, ответ более чем исчерпывающий. Просто есть у пунктов меню checkable, и при нажатии например, оно сразу сворачивается и даже не видно, поставилась галка или нет. То есть по дефолту сделано не аккуратно. Ну и плюс на будущее думал в небольших приложениях, в меню пару настроек например с checkable кинуть и чтобы за одно открытие меню можно было два чека поставить. Ну вообщем понял, что идея на троечку, но если очень сильно надо будет, то думаю наберусь опыта к том времени.

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

Добавлено: 17 фев 2016, 11:31
CrazyShotz
почему item.getItemId() в контексте урока, возвращает мне int? Сам метод типа int. Или же все нормально, он так и будет пытаться перевести строковый id в число? Если же нет, как мне получить строковое значение id?
P.S.
(Совсем недавно начал изучать андроид, просьба камнями не кидаться :) )

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

Добавлено: 17 фев 2016, 11:35
driversti
CrazyShotz писал(а):почему item.getItemId() в контексте урока, возвращает мне int? Сам метод типа int. Или же все нормально, он так и будет пытаться перевести строковый id в число? Если же нет, как мне получить строковое значение id?
P.S.
(Совсем недавно начал изучать андроид, просьба камнями не кидаться :) )
Если метод возвращает значение int, то естественно вы получите число. Если же вам необходимо это число отобразить в виде строки, можете воспользоваться методом String.valueOf(int i)

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

Добавлено: 18 фев 2016, 09:05
CrazyShotz
driversti писал(а):
CrazyShotz писал(а):почему item.getItemId() в контексте урока, возвращает мне int? Сам метод типа int. Или же все нормально, он так и будет пытаться перевести строковый id в число? Если же нет, как мне получить строковое значение id?
P.S.
(Совсем недавно начал изучать андроид, просьба камнями не кидаться :) )
Если метод возвращает значение int, то естественно вы получите число. Если же вам необходимо это число отобразить в виде строки, можете воспользоваться методом String.valueOf(int i)
В том то и дело, что при использовании этого метода я получаю число, вместо строки. Этот метод использовался в контексте урока. То есть String.valueOf(item.getItemId()) преобразовал типы, но не преобразовал значение. Единственное, что не понравилось дебаггеру - это то, что я использовал объект String внутри StringBuilder, что в свою очередь негативно отразится на производительности.

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

Добавлено: 18 фев 2016, 09:53
driversti
CrazyShotz писал(а):То есть String.valueOf(item.getItemId()) преобразовал типы, но не преобразовал значение
Я чего-то не понимаю?! Что вы вкладываете в словосочетание "не преобразовал значение"? Если есть String x = 5, этот метод вернёт int x = 5. Или вам нужно int = "какое-то другое значение отличное от 5"? Объясните что вам нужно