用于以编程方式获取选项菜单的Android代码?

时间:2011-04-19 04:44:51

标签: android menu

Android代码,用于在显示活动后以编程方式在Android中获取选项菜单

这可能吗? 在此先感谢!!

1 个答案:

答案 0 :(得分:0)

我可以通过挂钩onAttachedToWindow()事件来打开菜单。这将在创建视图后自动触发。我使用了以下代码:

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    try {
        ((Activity) this).openOptionsMenu();        
    } catch (Exception ex) {
        Log.e("ERR", "Error: " + ex.getMessage());
    }
}

当我尝试在“onCreate(...)”或“onPostCreate(...)”事件中打开选项菜单时,我收到以下错误:“无法添加窗口 - 令牌null无效” ;你的活动在运行吗?“在绘制视图并将其注册到窗口之前,似乎选项菜单不可用。

顺便说一句,最好通过挂钩“onTouchEvent(Motion事件)”来打开选项菜单,如下所示:

@Override
public boolean onTouchEvent(MotionEvent event) {
    ((Activity) this).openOptionsMenu();
    return super.onTouchEvent(event);
}

这样,如果用户点击或滑动活动,则会显示“选项菜单”。为了完善讨论,可以通过以下命令解除选项菜单:

((Activity)mContext).closeOptionsMenu();

因此,可以使用以下命令“切换”选项菜单:

    ((Activity) this).openOptionsMenu();
    ((Activity) this).closeOptionsMenu(); 

嗯,我希望这有帮助。