2012-08-09 10 views
11

çağrılabilir doesnt:invalidateOptionsMenu o kendi eylem çubuğunu kurmak gerekiyor ile bir fragmana sahip parçasının

public class CalendarFragment extends Fragment { 

public CalendarFragment() { 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    getActivity().supportInvalidateOptionsMenu(); 
    setHasOptionsMenu(true); 
} 

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.calendar_menu1, menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    return super.onOptionsItemSelected(item); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    TextView textView = new TextView(getActivity()); 
    textView.setGravity(Gravity.CENTER); 
    textView.setText("Calendar Fragment"); 
    return textView; 
} 

}

sorun calendar_menu1 öğelerle ancak yeni bir menü oluşturmak doesnt sadece invalidateOptionsMenu çalışmıyor (i getActivity() çalıştı. invalidateOptionsMenu() çok) olarak eğer eski menüye ondan öğeleri ekler

+1

Ne eski menü, sen de senin aktivitede onCreateOptionsMenu yok emin misin? – Necronet

+0

Tam olarak ne demek ** ** yeni menü **? Bunlar dışında hiç öğe olmayan bir menü, yeni oluşturdunuz mu? –

cevap

3

O MenuInflater ait javadoc içine bakarak, normaldir, "ürün ve alt

public void inflate (int menuRes, Menu menu) 
Inflate a menu hierarchy from the specified XML resource. Throws InflateException if there is an error. 

Parameters 
menuRes Resource ID for an XML layout resource to load (e.g., R.menu.main_activity) 
menu The Menu to inflate into. The items and submenus will be added to this Menu. 

Eğer parça menüsünü şişirmek için önce menu.clear() aradın mı: menüler bu Menu" eklenecektir?

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    menu.clear(); 
    inflater.inflate(R.menu.calendar_menu1, menu); 
} 
5

Sen onCreate() içinde aramalıdır:

setHasOptionsMenu(true); 
İlgili konular