5

ActionBar numaralı telefonumda SearchView var. Ayrıca, onCreateOptionsMenu'da aramayı yükleyen bir MainFragmentActivity var. Ben ve ince SearchView eser arasından Fragment s takas gibi - bir istisna dışında: Orada Böyle yük nereye özellikle Fragment üzerindedir:Eylem için Geniş Görünümde Boş İşaretçi ÇubuğuBir arama

FragmentTransaction t = fm.beginTransaction(); 
SherlockListFragment mFrag = new RateReviewFragment(); 

t.add(R.id.main_frag, mFrag); 
t.setCustomAnimations(R.anim.animation_leave, R.anim.animation_enter, 
     R.anim.animation_leave, R.anim.animation_enter); 
t.show(mFrag); 
t.addToBackStack(null); 
t.commit(); 

sadece burada fark benim backstack bunu ekliyorum olduğunu. Bu Fragman gösteriliyorken, ActionBar'daki SearchView'a vurmaya çalıştığımda veya ANY Fragment (Bu Parça Sonrası Gösterildikten Sonra) (Bu Fragment kapatıldıktan sonra arka yığını açıp temizlerim), sonra aşağıdaki hatayı alıyorum. Kodumda görünmediği için teşhis etmek zordur.

06-17 10:03:33.668: E/AndroidRuntime(9224): FATAL EXCEPTION: main 
06-17 10:03:33.668: E/AndroidRuntime(9224): java.lang.NullPointerException 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at com.android.internal.widget.ActionBarView$ExpandedActionViewMenuPresenter.expandItemActionView(ActionBarView.java:1470) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at com.android.internal.view.menu.MenuBuilder.expandItemActionView(MenuBuilder.java:1233) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at com.android.internal.view.menu.MenuItemImpl.expandActionView(MenuItemImpl.java:620) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:879) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at com.android.internal.view.menu.ActionMenuView.invokeItem(ActionMenuView.java:524) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at com.android.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:131) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at android.view.View.performClick(View.java:4102) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at android.view.View$PerformClick.run(View.java:17085) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at android.os.Handler.handleCallback(Handler.java:615) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at android.os.Handler.dispatchMessage(Handler.java:92) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at android.os.Looper.loop(Looper.java:155) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at android.app.ActivityThread.main(ActivityThread.java:5454) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at java.lang.reflect.Method.invoke(Method.java:511) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:796) 
06-17 10:03:33.668: E/AndroidRuntime(9224):  at dalvik.system.NativeStart.main(Native Method) 

bu hatayı almaya been beri bu bunu yapmış birkaç değişikliklerden biridir: böylece hayata geçirildi FragmentActivity

searchView.setOnQueryTextListener(new OnQueryTextListener() { 
     public boolean onQueryTextChange(String arg0) { 
      // TODO Auto-generated method stub 
      return false; 
     } 

     public boolean onQueryTextSubmit(String arg0) { 
      if (searchItem != null) { 
       searchItem.collapseActionView(); 
      } 
      return false; 
     } 

    }); 

Bu da

android:title="Search" 
android:showAsAction="always|collapseActionView" 

, bu SearchView gönderildikten sonra otomatik olarak kapanır. Not: ActionBarSherlock kullanıyorum.

cevap

9

Aynı sorunu yaşıyordum.

getSupportActionBar().setIcon(null); 

ActionBarSherlock cryptically bu yaptıktan sonra ActionView göstermeye çalışmadan üzerine çöker: ağrılı deneme yanılma bir sürü sonra nihayet benim durumumda konu boş simgeyi ayarlayarak olduğunu öğrendim.

Umarım durumunuz benzerdir.

İlgili konular