2012-09-14 8 views
18

Sto cercando di creare una voce di menu contestuale all'interno di un frammento. Ma sto affrontando un problema con il metodo getMenuInflater(). Non è definito. Ho importato tutti i pacchetti necessari. Qualcuno può far notare cosa sto facendo male qui?getMenuInflater() metodo problema non definito nella creazione del menu contestuale Android

Ecco il mio codice:

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.ContextMenu; 
import android.view.ContextMenu.ContextMenuInfo; 
import android.view.Gravity; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.MenuInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 
import android.view.MenuItem; 

public class FeaturedFragment extends Fragment { 
public FeaturedFragment() { 
} 
public static final String ARG_SECTION_NUMBER = "section_number"; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.featured_fragment,container,false); 
    registerForContextMenu(view); 
    return view; 
} 

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 
{ 
    super.onCreateContextMenu(menu, v, menuInfo); 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.toggleview_menu, menu); 
} 
} 

qui è la mia menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >  
     <item android:id="@+id/toggle_view" 
     android:title="Change to ListView" 
     android:icon="@drawable/collections_view_as_grid" 
     android:showAsAction="always" /> 
     <item android:id="@+id/grid_view" 
     android:title="Grid View" 
     android:orderInCategory="99" 
     android:showAsAction="never" /> 
     <item android:id="@+id/list_view" 
     android:title="List View" 
     android:orderInCategory="99" 
     android:showAsAction="never" /> 
    </menu> 

risposta

43

Cambio:

MenuInflater inflater = getMenuInflater(); 

A tal:

MenuInflater inflater = getActivity().getMenuInflater(); 
+0

Grazie. Funziona. Ma la mia voce di menu non è mostrata nella vista. Ho modificato il mio post con il file xml del menu. – intrepidkarthi

+0

non dovresti usare 'getMenuInflator()' all'interno di 'onCreateOptionsMenu' all'interno di un 'Activity'? La Guida per gli sviluppatori di – waqaslam

+0

(http://developer.android.com/guide/topics/ui/menus.html#FloatingContextMenu) dice che possiamo averla all'interno di un'attività o di un frammento. – intrepidkarthi

Problemi correlati