Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
#1

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

29.04.2014, 18:04. Просмотров 470. Ответов 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, "Три");
пробовал так, но без результатно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2014, 18:04     Различные контекстные меню для одного фрагмента
Посмотрите здесь:

Отключение акселерометра для одного приложения Android
In-app billing - для одного девайса или нескольких? Android
Android Реализация фрагмента кода
Android Запуск активности из фрагмента
Доступ к виджету фрагмента Android
Смена фрагмента в контейнере Android
Метод фрагмента onResume() перестает вызываться после вызова метода recreate() для Activity Android
Android Открытие фрагмента NawDrawer
Android Действующая сессия для одного пользователя
Android Google maps метод поиска фрагмента карт на разметке для разных версий андроид
Как реализовать передачу массива из одного фрагмента в другой Android
Android Повторное создание фрагмента внутри фрагмента ViewPager

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
29.04.2014, 18:10     Различные контекстные меню для одного фрагмента #2
Цитата Сообщение от KillAndEat Посмотреть сообщение
if (!(temp==null)&&!(temp1==null))
а это что за дьявольская конструкция? проверка на null?
temp != null
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
29.04.2014, 18:46  [ТС]     Различные контекстные меню для одного фрагмента #3
NiRamz, если обе переменные не равны нулю, то воткнуть новый пункт меню.Но это к теме не относится. Интересует как его собственно воткнуть
NiRamz
211 / 211 / 16
Регистрация: 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("Три");
как то так должно отработать, смотря что в преференсы вы сохраняете.
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
29.04.2014, 19:07  [ТС]     Различные контекстные меню для одного фрагмента #5
NiRamz, условие не имеет значения(ваше тоже не работает ибо оно такое же как у меня) Проблема в том, что метод создающий меню onCreateOptionsMenu вызывается только при создании фрагмента. Вопрос в том можно ли меню обновить откуда нибудь.
NiRamz
211 / 211 / 16
Регистрация: 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 создаем
Yandex
Объявления
29.04.2014, 19:12     Различные контекстные меню для одного фрагмента
Ответ Создать тему
Опции темы

Текущее время: 16:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru