В моем приложении есть класс, расширяющий SherlockFragmentActivity. В этом действии я загружаю четыре класса, расширяющих SherlockFragment, которые притворяются вкладками с помощью ActionbarSherlock. и PagerSlidingTabStrip.
Классы, расширяющие SherlockFragment, имеют setHasOptionsMenu(true); внутри onCreate() метод. Даже при этом при запуске приложение не будет вызывать метод onCreateOptionsMenu().
Я прочитал эти похожие вопросы (Q1, Q2) в SO и не получил никакой помощи .
Что может быть причиной этого?
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
inflater.inflate(R.menu.record, menu);
super.onCreateOptionsMenu(menu, inflater);
Log.i(TAG, "* onCreateOptionsMenu");
}
ОБНОВЛЕНИЕ:
Я думаю, причина в том, что я использую SherlockFragment внутри другого SherlockFragment. Означает в PageSlidingTabStripFragment. java имеет следующий метод внутри класса MyPagerAdapter.
@Override
public SherlockFragment getItem(int position) {
return SuperAwesomeCardFragment.newInstance(position);
}
Что я делаю, так это вызываю некоторые другие SherlockFragments, как показано ниже.
@Override
public SherlockFragment getItem(int position) {
Log.i(TAG, "* getItem");
switch (position) {
case 0:
return new InnerSherlockFragmentOne();
case 1:
return new InnerSherlockFragmentTwo();
case 2:
return new InnerSherlockFragmentThree();
case 3:
return new InnerSherlockFragmentFour();
default:
return null;
}
}
То, что не вызывается, это onCreateOptionsMenu (меню меню, инфлятор MenuInflater) внутри этих InnerSherLockFragments.
menu.clear()
перед раздуванием меню. - person Naddy   schedule 19.11.2013onCreateOptionsMenu()
даже не звонил. Если я помещу сообщениеLog
в этот метод в качестве первой строки, оно не будет напечатано. - person AnujAroshA   schedule 19.11.2013MenuItems
программно. Но чтобы создатьMenuItems
программно, нам нужно запуститьonCreateOptionsMenu()
внутри фрагмента. Это то место, которое не происходит со мной. Возможно, вы реализовалиMenuItems
внутриSherlockFragmentActivity
, а неSherlockFragment
ИЛИ вы не можете создавать разныеMenuItems
для разных фрагментов. Кстати, спасибо, что поделились своим опытом. - person AnujAroshA   schedule 19.11.2013