1

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.

+0

vérifier votre importation – Blackbelt

+0

qu'entendez-vous par les importations? –

+0

Toutes les bibliothèques et projets de bibliothèque sont importés correctement. Et le code source utilise les importations correctes. –

Répondre

0

Essayez:

private editTextSearch; 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getSupportMenuInflater().inflate(R.menu.your_menu, menu);  
    menu.getItem(0).setActionView(R.layout.search); //Number of menu item 
    editTextSearch = (EditText) menu.getItem(0).getActionView().findViewById(R.id.edit_search); //Your editetxt search 

    return super.onCreateOptionsMenu(menu); 
}