对于视图的加载,一般需要将其加载完成后才可以用findViewById获取控件
setContentView(R.layout.activity_main);
ListView listView = (ListView)findViewById(R.id.lv);
对于菜单项,onCreateOptionsMenu进行菜单的加载
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_editer, menu);
return true;
}
我尝试将findViewById放入其中但是还是失败
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_editer, menu);
MenuItem menuItem = (MenuItem) findViewById(R.id.edit_save);//依旧返回NULL
return true;
}
最后使用getItem方法直接获取菜单项
private MenuItem menuItem;
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_editer, menu);
//获取保存按钮
menuItem = menu.getItem(0);
//设置保存按钮初始不可见
menu.getItem(0).setVisible(false);
return true;
}
不能在activity的onCreate函数中使用menuItem,因为此时onCreateOptionsMenu还没有被执行。