SherlockactionBar中手动调用onCreateOptionsMenu的办法

时间:2023-03-09 04:22:10
SherlockactionBar中手动调用onCreateOptionsMenu的办法

我们有时候要做做事的时候,要提前拿到 ActionBar中的menuItem,但是,会出现为空的情况。怎么办呢?

比如这里:

     @Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.menu_common, menu);
mapItem = menu.findItem(R.id.menuItem);
mapItem.setTitle(ResourceReader.readString(GroupTasksActivity.this, R.string.menu_map));
mapItem.setIcon(ResourceReader.readDrawable(this, R.drawable.ic_menu_map));
mapItem.setOnMenuItemClickListener(item -> {
taskGroupPresent.setupMenuMap(item);
return true;
});
mapItem.setVisible(false);
return true;
}

但我们创建Activity后,在Oncreate或者OnResume代码中,要用到mapItem,mapItem不一定要生成完毕,

有可能为空。我们要手动调用 onCreateOptionsMenu怎么办呢?

呵呵,可以直接用 openOptionsMenu方法就可以了。没错,就是这个方法:

完整方法在这里:

      setContentView(R.layout.activity_nearby_task);
openOptionsMenu();
initAllDatas();
setListener();

总结:手动 调用 onCreateOptionsMenu,就用 openOptionsMenu