当我在onCreateOptionsMenu()
内时,我将我的活动中的一个菜单项存储为类字段。
_myMenuItem = (MenuItem) findViewById(R.id.menu_item);
但是在onCreate()
中我调用了异步方法,其结果决定了我是否应该在所述菜单项上使可见性为true或false;例如:
if (someCondition) {
_myMenuItem.setVisible(true);
}
问题有时是在菜单膨胀之前异步方法完成(并且上面的代码被调用),导致空指针异常。
如何解决此时间问题?理想情况下,如果有人知道一个好方法,不要在onCreateOptionsMenu()
内放置异步调用。感谢
答案 0 :(得分:0)
在Activity中声明一个布尔属性。完成后台工作后,如果要显示菜单项,则将该属性设置为true,否则返回false并强制重新刷新菜单(调用invalidateOptionsMenu
)。刷新选项菜单会调用onPrepareOptionsMenu
。在onPrepareOptionsMenu中,检查属性的值并设置菜单项的可见性。