2012-09-14 25 views
18

Tôi đang cố tạo mục menu ngữ cảnh bên trong một đoạn. Nhưng tôi đang đối mặt với vấn đề với phương thức getMenuInflater(). Nó không xác định. Tôi đã nhập tất cả các gói cần thiết. Bất cứ ai có thể chỉ ra những gì tôi đang làm sai ở đây?getMenuInflater() phương pháp không xác định vấn đề trong Android Tạo bối cảnh Menu tạo

Đây là mã của tôi:

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

đây là menu.xml tôi

<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> 

Trả lời

43

Thay đổi:

MenuInflater inflater = getMenuInflater(); 

Để này:

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

Cảm ơn. Nó hoạt động. Nhưng mục menu của tôi không được hiển thị trong khung nhìn. Tôi đã chỉnh sửa bài đăng của mình bằng tệp xml menu. – intrepidkarthi

+0

không phải là bạn phải sử dụng 'getMenuInflator()' trong 'onCreateOptionsMenu' bên trong một' Hoạt động'? – waqaslam

+0

Hướng dẫn dành cho nhà phát triển (http://developer.android.com/guide/topics/ui/menus.html#FloatingContextMenu) cho biết chúng tôi có thể có nó bên trong hoạt động hoặc phân đoạn. – intrepidkarthi

Các vấn đề liên quan