Bla*_*BRA 56 android menu button android-activity
我想以编程方式打开optionsMenu,而无需单击用户的菜单键.我该怎么办?
Rob*_*ond 92
或者只是调用Activity.openOptionsMenu()?
小智 32
显然,在onCreate中执行此操作会中断应用程序,因为Activity尚未附加到窗口.如果你这样做:
@Override
public void onAttachedToWindow() {
openOptionsMenu();
};
Run Code Online (Sandbox Code Playgroud)
...有用.
mar*_*mor 16
对于使用新Toolbar类的开发人员来说Support Library,这就是它的完成方式:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.showOverflowMenu();
Run Code Online (Sandbox Code Playgroud)
Roy*_*nto 11
把这行代码放在你的onResume()中,这应该有帮助!
new Handler().postDelayed(new Runnable() {
public void run() {
openOptionsMenu();
}
}, 1000);
Run Code Online (Sandbox Code Playgroud)
来自名为MainActivity的活动内的OnClickListener:
MainActivity.this.openOptionsMenu();
Run Code Online (Sandbox Code Playgroud)
小智 5
如果使用AppCompatActivity
getSupportActionBar().openOptionsMenu();
Run Code Online (Sandbox Code Playgroud)
有两种方法可以做到这一点:
Activity.getWindow().openPanel(Window.FEATURE_OPTIONS_PANEL, event);
Run Code Online (Sandbox Code Playgroud)
该event参数是KeyEvent描述用于打开菜单的键,它可以根据菜单来自的键盘类型修改菜单的显示方式。
或者...通过模拟用户按下按钮:
IWindowManager wManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window"));
KeyEvent kd = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SOFT_LEFT);
KeyEvent ku = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_SOFT_LEFT);
wManager.injectKeyEvent(kd.isDown(), kd.getKeyCode(), kd.getRepeatCount(), kd.getDownTime(), kd.getEventTime(), true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51578 次 |
| 最近记录: |