у меня есть основная деятельность, в которой у меня есть четыре меню. и у меня есть один класс SipSetting, который расширяет PreferenceActivity, в котором у меня есть четыре поля. Теперь, когда я нахожусь в этом классе SipSetting, при нажатии на кнопку меню меню не появляется? как открыть это меню в этом классе?
как вызвать основную активность в PreferenceActivity?
Ответы (1)
Вы должны переопределить onCreateOptionsMenu(Menu)
в каждом Activity
и добавить туда соответствующее меню. Это меню может быть общим для разных действий, т. е. вы можете расширить одно и то же меню для нескольких действий. Помните, что вам также потребуется переопределить onOptionsItemSelected(MenuItem)
в каждом Activity
.
Это то, о чем вы спрашивали?
person
a.ch.
schedule
27.03.2012
да, но все остальные мои классы могут расширять действие, поэтому нет необходимости определять меню для каждого из этих классов, но в случае класса SipSetting, который касается предпочтений, он должен расширять действие PreferenceActivity. так как использовать это меню в этом классе?
- person Juned; 27.03.2012
какая бы задача ни выполнялась с элементом меню, та же задача, которую я хочу выполнить в этом файле настроек. Поэтому, если я переопределю метод onoptioncreatemenu(), тогда он просто покажет мне меню, но как он будет выполнять задачу главного меню?
- person Juned; 27.03.2012
как я описал: переопределить
onCreateOptionsMenu(Menu)
, раздуть меню и переопределить onOptionsItemSelected(MenuItem)
. Вы также можете попробовать этот подход: stackoverflow. com/questions/8116588/re-using-options-menu-code/
- person a.ch.; 27.03.2012
в вашей ссылке вы можете объяснить эту строку (R.menu.gv_options_menu, меню), я не получаю это меню. я должен создать отдельный xml для меню?
- person Juned; 27.03.2012
gv_options_menu
— это просто имя ресурса меню, т. е. у автора вопроса есть свое меню, определенное в файле gv_options_menu.xml
. Второй аргумент Menu
, который вы передаете inflate(int menuRes, Menu menu)
, вы получаете в методе onCreateOptionsMenu(Menu menu)
.
- person a.ch.; 27.03.2012