Bob*_*obs 40 android menu optionmenu
在我的Activity的一些方法中,我想检查菜单的标题或知道它是否被选中.我怎样才能获得Activity的菜单.我需要类似的东西this.getMenu()
Dus*_*tin 112
要小心invalidateOptionsMenu()
.它重新创建整个菜单.这有很多开销,并将重置嵌入式组件,如SearchView
.我花了很长时间才追查为什么我SearchView
会"随机"关闭.
我最终捕获了Dark发布的菜单,然后onPrepareOptionsMenu(Menu)
根据需要调用.这符合我的要求,没有令人讨厌的副作用.问题:如果onPrepareOptionsMenu()
在创建菜单之前调用,请务必进行空检查.我这样做如下:
private Menu mOptionsMenu;
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
mOptionsMenu = menu
...
}
private void updateOptionsMenu() {
if (mOptionsMenu != null) {
onPrepareOptionsMenu(mOptionsMenu);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 12
你可以通过将Menu对象传递给Activity类来实现
public class MainActivity extends Activity
{
...
...
private Menu _menu = null;
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
_menu = menu;
return true;
}
private Menu getMenu()
{
//use it like this
return _menu;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
64614 次 |
最近记录: |