как вызвать основную активность в PreferenceActivity?

у меня есть основная деятельность, в которой у меня есть четыре меню. и у меня есть один класс SipSetting, который расширяет PreferenceActivity, в котором у меня есть четыре поля. Теперь, когда я нахожусь в этом классе SipSetting, при нажатии на кнопку меню меню не появляется? как открыть это меню в этом классе?


person Juned    schedule 27.03.2012    source источник


Ответы (1)


Вы должны переопределить onCreateOptionsMenu(Menu) в каждом Activity и добавить туда соответствующее меню. Это меню может быть общим для разных действий, т. е. вы можете расширить одно и то же меню для нескольких действий. Помните, что вам также потребуется переопределить onOptionsItemSelected(MenuItem) в каждом Activity.

Это то, о чем вы спрашивали?

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