Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
1

Различные контекстные меню для одного фрагмента

29.04.2014, 18:04. Просмотров 573. Ответов 5
Метки нет (Все метки)

Сабж. Допустим изначально зарегистрировано 5 пунктов контекстного меню, но если пользователь поставит определенный пункст в настройках их должно сие 4. Как сие реализовать?

Java
1
2
3
4
5
6
7
8
9
10
11
SharedPreferences preferences = getActivity().getPreferences(
                getActivity().MODE_PRIVATE);
String temp = preferences.getString(Constants.PREFERENCES_KEY_1,
    null);
String temp1 = preferences.getString(Constants.PREFERENCES_KEY_2,
        null);
if (!(temp==null)&&!(temp1==null)){
  menu.add(0, 1, 1, "Один");
  }
menu.add(0, 2, 6, "Два");
menu.add(0, 3, 2, "Три");
пробовал так, но без результатно
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2014, 18:04
Ответы с готовыми решениями:

Убрать контекстные меню
Лепим свой дистрибутив на основе убунту 10.10 с KDE... есть необходимость убить контекстные меню в...

Контекстные меню и VBA
DoCmd. как выяснилось, не катит... Но ведь должен же быть способ программирования контекстных меню...

Пропали пользовательские контекстные меню
После сжатия базы данных в Access перестали работать пользовательские контекстные меню. Причем код...

Кто-нибудь создавал контекстные меню в Access?
Привет! Может, кто-нибудь подскажет, как можно создать пользовательскую строку в контекстном меню...

5
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
29.04.2014, 18:10 2
Цитата Сообщение от KillAndEat Посмотреть сообщение
if (!(temp==null)&&!(temp1==null))
а это что за дьявольская конструкция? проверка на null?
temp != null
0
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
29.04.2014, 18:46  [ТС] 3
NiRamz, если обе переменные не равны нулю, то воткнуть новый пункт меню.Но это к теме не относится. Интересует как его собственно воткнуть
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
29.04.2014, 18:50 4
Цитата Сообщение от KillAndEat Посмотреть сообщение
SharedPreferences preferences = getActivity().getPreferences(
* * * * * * * * getActivity().MODE_PRIVATE);
String temp = preferences.getString(Constants.PREFERENCES_KEY_1,
* * null);
String temp1 = preferences.getString(Constants.PREFERENCES_KEY_2,
* * * * null);
if (temp!=null && temp1!=null){
* menu.add("Один");
* }
menu.add("Два");
menu.add("Три");
как то так должно отработать, смотря что в преференсы вы сохраняете.
0
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
29.04.2014, 19:07  [ТС] 5
NiRamz, условие не имеет значения(ваше тоже не работает ибо оно такое же как у меня) Проблема в том, что метод создающий меню onCreateOptionsMenu вызывается только при создании фрагмента. Вопрос в том можно ли меню обновить откуда нибудь.
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
29.04.2014, 19:12 6
Скопировано из Activity класса.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
     * Prepare the Screen's standard options menu to be displayed.  This is
     * called right before the menu is shown, every time it is shown.  You can
     * use this method to efficiently enable/disable items or otherwise
     * dynamically modify the contents.
     * 
     * <p>The default implementation updates the system menu items based on the
     * activity's state.  Deriving classes should always call through to the
     * base class implementation.
     * 
     * @param menu The options menu as last shown or first initialized by
     *             onCreateOptionsMenu().
     * 
     * @return You must return true for the menu to be displayed;
     *         if you return false it will not be shown.
     * 
     * @see #onCreateOptionsMenu
     */
    public boolean onPrepareOptionsMenu(Menu menu) {
        if (mParent != null) {
            return mParent.onPrepareOptionsMenu(menu);
        }
        return true;
    }
Добавлено через 1 минуту
и если внимательно прочитать документацию, то станет понятно, что в prepare мы меняем меню, а в create создаем
0
29.04.2014, 19:12
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2014, 19:12

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Различные наборы графики для одного приложения
Добрый день! Никогда не разрабатывал под Windows Phone, но тут довелось. И столкнулся с...

Переход из одного фрагмента в другой
У меня есть фрагмент на котором показываются предметы из БД, и есть кнопка Изменить (для удаления,...

Пакетный файл для выбора из меню на запуск одного из нескольких редакторов для редактирования требуемого файла
Разработать пакетный файл для выбора из меню на запуск одного из нескольких редакторов (notepad,...

Как реализовать передачу массива из одного фрагмента в другой
Здравствуйте, как реализовать передачу массива из одного фрагмента в другой?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.