Статическое меню настроек - PullRequest
4 голосов
/ 15 января 2010

Я хочу создать статическое меню опций для всех моих экранов активности. Я не хочу переопределять onCreateOptionsMenu() в каждом действии.

Поскольку класс Menu является интерфейсом с огромным количеством методов, создать статический объект класса реализации сложно.

Есть ли другой способ сделать то же самое?

1 Ответ

17 голосов
/ 15 января 2010

Если я правильно прочитал ваш вопрос, вы захотите, чтобы одинаковое меню во всех ваших действиях. Я могу придумать два способа сделать это:

  1. Создайте подкласс Activity, который реализует onCreateOptionsMenu() и onOptionsItemSelected() (и, возможно, onPrepareOptionsMenu). Затем пусть все ваши Activity классы расширяют этот подкласс.

  2. Создайте статический метод где-нибудь, называемый чем-то вроде populateOptionsMenu(), который принимает Menu (и, вероятно, Context) в качестве аргументов. Затем ваши Activity классы могут вызывать это из своих onCreateOptionsMenu() методов для заполнения Menu. Вам также понадобится соответствующий processItemSelected() статический метод для нажатия элементов.

Вариант 1 кажется наилучшим, поскольку для вызова статических методов не потребуется использовать ту же самую болгарную табличку в ваших действиях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...