无需用户单击即无法以编程方式打开optionsMenu

时间:2012-08-13 10:06:41

标签: android menu optionmenu

在我的项目中,我尝试以编程方式打开 optionsMenu ,而无需点击用户的菜单键。我试过 openOptionsMenu(),但它给我一个错误,像这样 android.view.WindowManager $ BadTokenException:无法添加窗口 - .. 为什么它...这是什么解决方案...

08-13 14:53:02.687:E / AndroidRuntime(1213):致命异常:主要 08-13 14:53:02.687:E / AndroidRuntime(1213):java.lang.RuntimeException:无法启动活动ComponentInfo {com.veytila.candideye / com.veytila.candideye.MainActivity}:android.view.WindowManager $ BadTokenException :无法添加窗口 - 令牌null无效;你的活动在运行吗?

2 个答案:

答案 0 :(得分:2)

感谢您的回复.....我找到了来自Nandeesh先生的解决方案。我刚刚添加了以下代码及其工作......

 public void onResume()
{
    new Handler().postDelayed(new Runnable() { 
       public void run() { 
           openOptionsMenu(); 
       } 
    }, 500); 

    super.onResume();
}

答案 1 :(得分:1)

我相信你是在Oncreate或onResume中这样做的。只有在初始化活动窗口后才需要调用此api。一种方法是将你的onresume上的延迟runnable发布到ui线程。