2011-05-03 3 views
1

Когда пользователь нажимает кнопку «Меню», я представляю несколько пунктов меню. Одна из них - кнопка выхода. Я хочу иметь возможность изменять текст между «Sign In» и «Sign Out» в зависимости от логического значения, которое я отслеживаю. Как я могу программно изменить текст в меню?Как программно изменить элемент в меню параметров?

+0

в методе "onCreateOptionsMenu" делать "this._menu = меню;" в собственном методе ur «MenuItem item = _menu .findItem (1); item.setTitle (« test »); –

ответ

3

Вы хотите переопределить функцию onPrepareOptionsMenu в Activity. Параметр меню передан, вы можете просто найти элемент меню, который вы хотите показать/скрыть (или изменить изображение и текст), и вернуть true.

onPrepareOptionsMenu

+0

Perfect - намного лучше, чем менять элемент во время onOptionsItemSelected()! –

3

Завершение/Внедрение обратного вызова onPrepareOptionsMenu(...). Измените то, что вы добавите, в зависимости от состояния входа.

В качестве альтернативы, я не тестировал это, но, на мой взгляд, он работает: когда вы создаете элементы меню, держите дескриптор элемента входа/выхода в переменной класса и просто обновляете его, вызывая setTitle(...) как необходимо.