私はActionBar Sherlock 4.2を使用しています。ユーザーがデバイスを回転させると、onPrepareOptionsMenu メソッドで null 参照を取得します。これは、Landscape モードの Dual Fragment Layout から、Detail Fragment なしで「マスター」フラグメントのみを表示する Protrait モードに戻すときに発生します。しかし、それでも私の詳細フラグメントが呼び出されます。最初に、menu.xml で何か間違ったことをしたと思いましたが、そうではありません。Activity は null が返されます。何が間違っているのか、誰にもヒントがありますか?
奇妙なことに、コードが isDetached() チェックに合格することもあります。
ヒントをいただければ幸いです、カイトサーファー
/*
* (non-Javadoc)
*
* @see android.support.v4.app.Fragment#onPrepareOptionsMenu(android.support. v4.view.Menu)
*/
@Override
public void onPrepareOptionsMenu(final Menu menu)
{
if (getListAdapter() == null || getListAdapter().isEmpty() && isDetached())
{
return;
}
final MenuItem item = menu.findItem(R.id.forecast_options_navigate_to_spot);
Log.d(LOG_TAG, "Menu item size:" + menu.size());
Log.d(LOG_TAG, "Activity:" + getSherlockActivity());
出力:
11-11 13:07:46.862: D/MyFragment(27997): Menu item size:8
11-11 13:07:46.862: D/MyFragment(27997): Activity:null