2012-09-14 14 views
18

Estoy tratando de crear un elemento de menú contextual dentro de un fragmento. Pero estoy enfrentando un problema con el método getMenuInflater(). No está definido Importé todos los paquetes necesarios. ¿Alguien puede señalar lo que estoy haciendo mal aquí?Método getMenuInflater() problema no definido en Android Creación de menú contextual

Aquí está mi código:

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); 
} 
} 

aquí es mi 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> 

Respuesta

43

Cambio:

MenuInflater inflater = getMenuInflater(); 

A esto:

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

Gracias. Funciona. Pero mi elemento de menú no se muestra en la vista. He editado mi publicación con el archivo xml del menú. – intrepidkarthi

+0

¿No se supone que debes usar 'getMenuInflator()' dentro de 'onCreateOptionsMenu' dentro de' Activity'? – waqaslam

+0

Developer Guide (http://developer.android.com/guide/topics/ui/menus.html#FloatingContextMenu) dice que podemos tenerlo dentro de una actividad o un fragmento. – intrepidkarthi

Cuestiones relacionadas