0

메신저 ActionBar 셜록 4.2를 사용하여. 사용자가 장치를 회전 할 때 내 onPrepareOptionsMenu 메서드에서 null 참조를 얻습니다. 이 기능은 Landscape 모드의 Dual Fragment Layout에서 Detail Fragment가없는 'master'조각 만 표시하는 Protrait 모드로 다시 전환 할 때 발생합니다. 그래도 내 세부 조각이 호출됩니다. 우선, 내 menu.xml에서 뭔가 잘못되었지만, 이것은 단순히 사실이 아닙니다. Activity가 null이 반환됩니다. 누구든지 거기에 무엇이 잘못 되었을지 모를 팁이 있습니까?getSherlockActivity onPrepareOptionsMenu 반환 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 
+0

현재 활동을 확인하여 문제를 해결합니다 == null. 꽤 벙어리 솔루션이지만 지금까지 작동합니다. 나는 FragmentPagerAdapter를 체크했다. 예외적으로 뭔가가 분리되지는 않지만, onPrepareOptionsMenu 메소드 후에 코드가 호출된다. – Kitesurfer

답변

0

. 내 PagerAdapter에서 나는 바보 같은 짓을했다. 내

public void onTabUnselected(final Tab tab, final FragmentTransaction nullTransaction) 

에서

나는 물론이 방법으로 분리됩니다 다른 조각을 생성의 getItem()를 호출했다. 이로 인해 onPrepareOptionsMenu에서 Activity가 null이됩니다.