Android上下文菜单创建中的getMenuInflater()方法未定义问题该怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (111)

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

这是我的代码:

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>
提问于
用户回答回答于

更改:

MenuInflater inflater = getMenuInflater();

为此:

MenuInflater inflater = getActivity().getMenuInflater();

扫码关注云+社区