onCreateOptionsMenu wird nach onResume in JB 4.2 aufgerufen
Ich habe das folgende Fragment in meiner Bewerbung:
public class MyFragment extends SherlockListFragment implements LoaderManager.LoaderCallbacks<Cursor> {
private MenuItem refresh = null;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setHasOptionsMenu(true);
//.....
// NPE here
refresh.setActionView(R.layout.indeterminate_progress_action);
getActivity().getSupportLoaderManager().initLoader(0, null, this);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.refresh_menu, menu);
refresh = (MenuItem) menu.findItem(R.id.menu_item_refresh);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
mAdapter.swapCursor(data);
refresh.setActionView(null);
}
}
Grundsätzlich möchte ich, wenn der Benutzer die Aktivität startet, ein Fortschrittsfenster in der Aktionsleiste anzeigen, bis der Lader fertig ist. Vor Android 4.2 hat alles gut funktioniert. Unter Android 4.2 erhalte ich folgenden Fehler:
11-24 13:37:14.811: E/AndroidRuntime(17850): Caused by: java.lang.NullPointerException
11-24 13:37:14.811: E/AndroidRuntime(17850): at com.MyApp.library.fragments.MyFragment.onActivityCreated(TabFragment.java:65)
Nachdem ich einen Haltepunkt hinzugefügt hatte, stellte ich fest, dass onCreateOptionsMenu nach onActivityCreated aufgerufen wurde. Gibt es ein anderes Lebenszyklusereignis, das ich verwenden kann? Gibt es eine bessere Möglichkeit, den gewünschten Effekt zu erzielen?