Fla*_*dun 13 java android android-menu android-fragments
我试图在继承Fragment该类的类中夸大菜单.这是我的OnCreateOptionsMenu()方法 -
@Override
public boolean OnCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.forecastfragment, menu) ;
return true;
}
Run Code Online (Sandbox Code Playgroud)
这会引发以下错误:
无法解析方法'getMenuInflater()'
我试过了 :
MenuInflater inflater = getActivity().getMenuInflater();
Run Code Online (Sandbox Code Playgroud)
但随后Android Studio @Override以红色突出显示并指出:
方法不会覆盖其超类的方法
我还尝试getMenuInflater在同一个类中创建一个方法并让它返回new MenuInflater(this)
public MenuInflater getMenuInflater() {
return new MenuInflater(this);
}
Run Code Online (Sandbox Code Playgroud)
但然后抛出以下错误:
错误:不兼容的类型:ForecastFragment无法转换为Context
error:方法不会覆盖或实现超类型的方法
我该怎么办?
小智 13
您的签名onCreateOptionsMenu看起来不正确.看看这里的文档
看看这段代码
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);//Make sure you have this line of code.
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// TODO Add your menu entries here
super.onCreateOptionsMenu(menu, inflater);
}
Run Code Online (Sandbox Code Playgroud)
在您的片段类中添加:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.[IDMENU], menu) ;
}
Run Code Online (Sandbox Code Playgroud)
其中 [IDMENU] 是菜单的 XML 名称。
接下来您需要在 onCreate 或 onCreateView 方法中添加以下内容:
setHasOptionsMenu(true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19088 次 |
| 最近记录: |