Урок 15. Контекстное меню

Обсуждение уроков
mixailanarxist
Сообщения: 17
Зарегистрирован: 15 ноя 2014, 23:26

Re: Урок 15. Контекстное меню

Сообщение mixailanarxist » 02 дек 2014, 13:21

Все работает. Только возник вопрос. Почему-то в контекстном меню для элементов добавился 4-й пункт Settings, хотя в коде создания меню он нигде не указан. Как его убрать?

Сам разобрался. В папке res/menu в файле main.xml прописан этот пункт. Удаляем его и все. Если где-то понадобится, то дописываем. Ну или вообще делаем все с помощью xml-файлов.

Oyasi
Сообщения: 12
Зарегистрирован: 17 дек 2014, 20:31

Re: Урок 15. Контекстное меню

Сообщение Oyasi » 19 дек 2014, 19:42

Помогите пожалуйста, сделал всё как в уроке, но пишет, что КриейтКонтекстМеню не используется.. не знаю, что делать. Вот скрин кусочека кода, если понадобиться, то скину полный код
А ещё Android Studio ругается на надпись @Override перед методом OnCreateContextMenu
Вложения
Снимок1.PNG
Снимок1.PNG (8.12 КБ) 13039 просмотров

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 15. Контекстное меню

Сообщение doter.ua » 19 дек 2014, 19:57

Че за свич в онкреэйте? ты кнопку обрабатываешь или меню создаешь? Может ты хотел это onContextItemSelected
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Oyasi
Сообщения: 12
Зарегистрирован: 17 дек 2014, 20:31

Re: Урок 15. Контекстное меню

Сообщение Oyasi » 19 дек 2014, 20:03

doter.ua писал(а):Че за свич в онкреэйте? ты кнопку обрабатываешь или меню создаешь? Может ты хотел это onContextItemSelected
Вообще, свич можно и не создавать т.к. там одно действие, просто так было в примере, мне лень было менять.
Я просто создаю меню, метод onContextItemSelected написан изначально, я его пока не изменял, можно сказать, что он пустой.
Так в уроке было:
[syntax=java]
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.tvColor:
menu.add(0, MENU_COLOR_RED, 0, "Red");
menu.add(0, MENU_COLOR_GREEN, 0, "Green");
menu.add(0, MENU_COLOR_BLUE, 0, "Blue");
break;
case R.id.tvSize:
menu.add(0, MENU_SIZE_22, 0, "22");
menu.add(0, MENU_SIZE_26, 0, "26");
menu.add(0, MENU_SIZE_30, 0, "30");
break;
}
}[/syntax]
Последний раз редактировалось Oyasi 19 дек 2014, 20:09, всего редактировалось 1 раз.

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 15. Контекстное меню

Сообщение doter.ua » 19 дек 2014, 20:08

Ааа, это же контекстное, его уже никто не использует, на замену ему ActionBar. Обычно на нем мало действий(кнопок), но когда выделяешь определенный элемент (лонг тачем) то появляются дополнительные, такие как скопировать, передать, вставить ...) Пример таких баров на пикче (верхняя половина, снизу другие элементы есть ).
Изображение
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Oyasi
Сообщения: 12
Зарегистрирован: 17 дек 2014, 20:31

Re: Урок 15. Контекстное меню

Сообщение Oyasi » 19 дек 2014, 20:11

doter.ua писал(а):Ааа, это же контекстное, его уже никто не использует, на замену ему ActionBar. Обычно на нем мало действий(кнопок), но когда выделяешь определенный элемент (лонг тачем) то появляются дополнительные, такие как скопировать, передать, вставить ...) Пример таких баров снизу.
Ого! Подскажи пожалуйста как реализовать такой функционал? В моём случае, мне нужна только кнопка Delete
Ну или хотя бы ссылку дай, пожалуйста.

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 15. Контекстное меню

Сообщение doter.ua » 19 дек 2014, 20:29

Этот экшнбар идет аж 107 уроком, в принципе должно быть понятно и без предыдущих.
http://startandroid.ru/ru/uroki/vse-uro ... entov.html
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Rebel69
Сообщения: 5
Зарегистрирован: 25 ноя 2014, 07:34

Re: Урок 15. Контекстное меню

Сообщение Rebel69 » 19 дек 2014, 23:56

Доброго времени суток всем!
Вот, дошел, худо - бедно, до 15 урока... Попробовал сам сделать этот урок используя XML- меню.
Изрядно помучившись понял, что ничего не знаю. Одно дело с YouTube копировать, другое - самому делать.
Попытался читать developer.android.com, но это КИТАЙСКИЙ язык для меня, тем более что приходится читать
перевод с английского. Да и труды разные по Java, примерно тоже самое.
Вот и все мои достижения!

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 15. Контекстное меню

Сообщение doter.ua » 20 дек 2014, 00:22

Rebel69 писал(а):Доброго времени суток всем!
Вот, дошел, худо - бедно, до 15 урока... Попробовал сам сделать этот урок используя XML- меню.
Изрядно помучившись понял, что ничего не знаю. Одно дело с YouTube копировать, другое - самому делать.
Попытался читать developer.android.com, но это КИТАЙСКИЙ язык для меня, тем более что приходится читать
перевод с английского. Да и труды разные по Java, примерно тоже самое.
Вот и все мои достижения!
http://developer.alexanderklimov.ru/android/ там довольно таки для чайников.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Oyasi
Сообщения: 12
Зарегистрирован: 17 дек 2014, 20:31

Re: Урок 15. Контекстное меню

Сообщение Oyasi » 20 дек 2014, 00:40

doter.ua,
download/file.php?id=1566
это нормально вообще? :D

Rebel69
Сообщения: 5
Зарегистрирован: 25 ноя 2014, 07:34

Re: Урок 15. Контекстное меню

Сообщение Rebel69 » 20 дек 2014, 03:57

Безымянный2.png
Безымянный2.png (1.01 МБ) 13003 просмотра
Ночи доброй! Качнул студию с ихнего сайта, самую последнюю версию. Установил, прописал путь для JAVA_HOME, как она и требует,
запустил и получил вот такой результат...
Самое интересное - этот бред перевести невозможно.

Oyasi
Сообщения: 12
Зарегистрирован: 17 дек 2014, 20:31

Re: Урок 15. Контекстное меню

Сообщение Oyasi » 20 дек 2014, 04:52

Rebel69 писал(а):
Безымянный2.png
Ночи доброй! Качнул студию с ихнего сайта, самую последнюю версию. Установил, прописал путь для JAVA_HOME, как она и требует,
запустил и получил вот такой результат...
Самое интересное - этот бред перевести невозможно.
Путь криво прописал, попытай удачу ещё раз
Пропиши путь до директории JDK, куда ты там установил его

Rebel69
Сообщения: 5
Зарегистрирован: 25 ноя 2014, 07:34

Re: Урок 15. Контекстное меню

Сообщение Rebel69 » 20 дек 2014, 15:11

Перепробовал кучу вариантов путей и заработал только этот :
C:\Program Files (x86)\Java\jdk1.8.0_25\jre !!!
Студия запустилась!

Ivan2007
Сообщения: 22
Зарегистрирован: 05 янв 2015, 19:55

Re: Урок 15. Контекстное меню

Сообщение Ivan2007 » 07 янв 2015, 21:32

Ругается на Непонятную мне ошибку
Подскажите
Вложения
Duplicate.png
Duplicate.png (193.42 КБ) 12928 просмотров

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 15. Контекстное меню

Сообщение doter.ua » 07 янв 2015, 22:44

Ivan2007 писал(а):Ругается на Непонятную мне ошибку
Подскажите
Проверь нет ли одинаковых констант (по значению)
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

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

Re: Урок 15. Контекстное меню

Сообщение Foenix » 07 янв 2015, 22:48

что значит непонятную? читать же надо
R.id.team

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

Джон-паяльник
Сообщения: 5
Зарегистрирован: 31 янв 2015, 20:34

Re: Урок 15. Контекстное меню

Сообщение Джон-паяльник » 31 янв 2015, 20:42

Добрый день.
Такой вопрос:
Почему в 10 уроке приходилось для использования метода
btnOk.setOnClickListener(this);
делать implements OnClickListener

А в 15 уроке, при использовании
tvColor.setOnCreateContextMenuListener(this);
implements делать не нужно.

Спасибо.

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 15. Контекстное меню

Сообщение klblk » 02 фев 2015, 08:40

Джон-паяльник писал(а):Добрый день.
Такой вопрос:
Почему в 10 уроке приходилось для использования метода
btnOk.setOnClickListener(this);
делать implements OnClickListener

А в 15 уроке, при использовании
tvColor.setOnCreateContextMenuListener(this);
implements делать не нужно.

Спасибо.
Потому что Activity изначально implements View.OnCreateContextMenuListener (смотреть строчку implements), и следовательно все её наследники обладают этим интерфейсом. OnClickListener же у Activity и её родителей отсутствует (т.к. видимо делать ему там нечего), и его нужно реализовывать самостоятельно.

shut56
Сообщения: 1
Зарегистрирован: 03 фев 2015, 21:22

Re: Урок 15. Контекстное меню

Сообщение shut56 » 03 фев 2015, 21:38

Здравствуйте!
Возникла небольшая проблемка: цвет, созданный по 11-му уроку, не хочет "цепляться" за текст. Не могу понять в чем проблема.

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

    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.color_pink:
                tvColor.setTextColor(R.color.TextPink);
                tvColor.setText("Text color - Pink");
                break;
        }
        return super.onContextItemSelected(item);
    }
При этом, через Properties цвет определяется.
Остальной код MainActivity.java полностью соответствует коду из урока и прекрасно запускается.
Был бы очень благодарен за помощь!

UPD: Проблема решена!
Нужно было делать так:

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

tvColor.setTextColor(getResources().getColor(R.color.TextPink));
Извините за беспокойство.

Айрат_К
Сообщения: 1
Зарегистрирован: 26 фев 2015, 19:23

Re: Урок 15. Контекстное меню

Сообщение Айрат_К » 16 мар 2015, 14:35

Всем привет))) Есть урок 15 сделанный через XML код?) Ни как не могу разобраться) Благодарю за внимание)

Ответить