有没有其他方法可以在显示活动后调用openOptionsMenu而不使用类似的东西:
new Handler().postDelayed(new Runnable() { public void run() { openOptionsMenu(); } }, 1000);编辑:我会很感激这样的例子:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Now I guess something like Window.Callback.onAttachedToWindow(...) should be done? }
答案 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);