J'ai un générique SherlockListFragment
qui est utilisé dans mon application dans différents cas. Ce fragment a une option Menu Item (un SearchView
), voici le code de la création SearchView
:SherlockListFragment 'onCreateOptionMenu' se bloque sur android 2.3.3
@Override
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.all_places, menu);
final MenuItem searchMenuItem = menu.findItem(R.id.action_search);
searchMenuItem.setOnActionExpandListener(this);
final SearchView searchView = (SearchView) searchMenuItem
.getActionView();
searchView.requestFocusFromTouch();
searchView.setQueryHint(getString(R.string.search_query_hint));
searchView.setOnQueryTextListener(this);
}
Le problème est que l'un de ces fragments d'instances est utilisé dans un ViewPager, et quand glisser à lui, l'application se bloque (uniquement sur HTC Desire avec Android 2.3.3), mais fonctionne sur les appareils ICS et JB. En passant, lors de la fixation manuelle du fragment (sans ViewPager
), aucun incident ne se produit.
Voici la trace de la pile de l'accident:
java.lang.NullPointerException
at android.view.View.dispatchRestoreInstanceState(View.java:6132)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:1213)
at android.view.View.restoreHierarchyState(View.java:6116)
at com.actionbarsherlock.internal.view.menu.MenuBuilder.restoreActionViewStates(MenuBuilder.java:361)
at com.actionbarsherlock.internal.ActionBarSherlockCompat.preparePanel(ActionBarSherlockCompat.java:503)
at com.actionbarsherlock.internal.ActionBarSherlockCompat.dispatchInvalidateOptionsMenu(ActionBarSherlockCompat.java:272)
at com.actionbarsherlock.app.SherlockFragmentActivity.invalidateOptionsMenu(SherlockFragmentActivity.java:150)
at com.actionbarsherlock.app.SherlockFragmentActivity.supportInvalidateOptionsMenu(SherlockFragmentActivity.java:156)
at android.support.v4.app.Fragment.setMenuVisibility(Fragment.java:781)
at android.support.v4.app.FragmentStatePagerAdapter.setPrimaryItem(FragmentStatePagerAdapter.java:151)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1009)
at android.support.v4.view.ViewPager.populate(ViewPager.java:880)
at android.support.v4.view.ViewPager$3.run(ViewPager.java:238)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:144)
at android.app.ActivityThread.main(ActivityThread.java:4937)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Je suis vraiment coincé avec cette question ... toute aide sera grande.
Modifier
Switched à ActionBarSherlock branche dev - pas de plantage ... merci tout le monde.
vérifier votre importation – Blackbelt
qu'entendez-vous par les importations? –
Toutes les bibliothèques et projets de bibliothèque sont importés correctement. Et le code source utilise les importations correctes. –