2012-03-18 13 views
5

ViewPager, iki Fragman ve iki sekmeyi gösteren ActionBar içeren bir sherlockfragmentactivity kullanıyorum. Ben fragmandan eylemleri öğeleri doldurmak ama fragman ekranı İşlem Çubuğu Menuıtem daha amacıyla yönteminiActionItem ekran rotasyonunda kayıp

setHasOptionsMenu(true); 

aramak zorunda. Ancak ekran yönü değiştiğinde, MenuItems görüntülenmez.

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater); 
    menu.add(R.string.action_refresh).setIcon(R.drawable.ic_menu_refresh) 
      .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { 

       public boolean onMenuItemClick(MenuItem item) { 
        refresh(); 
        return false; 
       } 
      }).setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
    menu.add(R.string.action_add_a_file).setIcon(R.drawable.ic_menu_upload) 
      .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
    menu.add(R.string.action_settings).setIcon(android.R.drawable.ic_menu_preferences) 
      .setIntent(new Intent(getSherlockActivity(), SettingsActivity.class)) 
      .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_NEVER | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 

} 

düzgün bir SherlockFragment dan işlem çubuğuna öğe eklemek için bir yolu var mı ve nasıl ben sonra İşlem Çubuğu bu öğeyi tutabilir: Burada

ilk fragmanda bir seçenek menü oluşturmak için benim kodudur ekran yönünü değiştirmek? manifeast dosyaya FragmentActivity çizgiyi takip

+2

En iyi çözüm olup olmadığını bilmiyorum, ancak bilinen bir sabit parça sayısına sahip olduğumdan, onları SherlockActivitesimde "onCreate" yönteminde örneklendirir ve instanciation'dan sonra çağrıda bulunur: invalidateOptionsMenu(); benim parçalarımın “EtkinliğiÇoklu” yöntemi, orada yapmam gerekenden sonra “setHasOptionsMenu” (true); Bu nedenle benim ActionItems'im ekran yöneliminden sonra bile her parça için görüntülenir. – Kowlown

cevap

0

eklenti android:configChanges="orientation"

yönü otomatik sistemin kendisi tarafından ele alınır. ama hava durumunu bilmiyorum, verimli bir yol değil.

+0

+1. Çalıştığı için teşekkürler .. –

+0

android: configChanges = "orientation" 'kullanımı [önerilmez] (http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html#bad -practice-korumak-aktivitesi) – matoni

İlgili konular