Android - openOptionsMenu在onCreate中不起作用

时间:2010-05-05 22:01:13

标签: android

有没有其他方法可以在显示活动后调用openOptionsMenu而不使用类似的东西:

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

参考: http://groups.google.com/group/android-beginners/browse_frm/thread/b10a8ea840c07725/1ce48bb147a3ed1a?#1ce48bb147a3ed1a

编辑:我会很感激这样的例子:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Now I guess something like Window.Callback.onAttachedToWindow(...) should be done?
}

2 个答案:

答案 0 :(得分:21)

我再次查看了Activity,它已经使用了onAttachedToWindow方法,继承自Window.Callback,因为API等级为5.如果您使用的是此级别,那么您只需要在Activity中覆盖此方法。

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    openOptionsMenu();
}

如果您使用的是5之前的版本,则必须覆盖onAttachedToWindow method in View。如果在代码中创建View,这非常简单。如果它是在XMl中创建的,那就不那么难了 - 你应该发现instructions here很有帮助。

答案 1 :(得分:-1)

我的解决方案

//Open menu manually from code 
    Timer timing = new Timer();
    timing.schedule(new TimerTask() {

                /**
                 * {@inheritDoc}
                 */
                @Override
                public void run() {

                    runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            openOptionsMenu();
                        }
                    });

                }
            }, 1000);