2012-09-14 38 views
18

我想创建一个片段内的上下文菜单项。但是我面临着getMenuInflater()方法的问题。它是未定义的。我已经导入了所有必需的软件包。任何人都可以指出我在这里做错了吗?getMenuInflater()方法undefined问题在Android上下文菜单创建

这里是我的代码:

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

这里是我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> 

回答

43

变化:

MenuInflater inflater = getMenuInflater(); 

要这样:

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

谢谢。有用。但是我的菜单项没有显示在视图中。我用菜单XML文件编辑了我的文章。 – intrepidkarthi

+0

是不是应该在'Activity'的'onCreateOptionsMenu'内使用'getMenuInflator()'? – waqaslam

+0

开发人员指南(http://developer.android.com/guide/topics/ui/menus.html#FloatingContextMenu)表示我们可以将它放在活动或片段中。 – intrepidkarthi