<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->
建立 menu 后怎么调用 menu 。
一般当我们通过以下的方法建立菜单
public boolean onCreateOptionsMenu (Menu menu) {
super .onCreateOptionsMenu(menu);
}
然后当我们点击模拟器的 menu 按钮后,会调出我们创建的菜单。
但是当我们不想通过点击 menu 来调用,而是通过点击某个 button 来调用的时候,一般情况有以下两种方法:
第一是 button 监听器事件里调用 Activity 类中 openOptionsMenu();
myButton3 .setOnClickListener( new Button.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//onKeyDown(KeyEvent.KEYCODE_MENU, null);
openOptionsMenu();
}
});
第二种方法是用 Instrumentation 发 送 键盘 鼠
事件: Instrumentation 提供了丰富的以 send 开 头 的函数接口来 实现 模 拟键盘 鼠
。定 义 一个方法来模 拟键盘 事件,在 button 里面 传递 KeyEvent.KEYCODE_MENU 。
myButton3 .setOnClickListener( new Button.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stu simulateKey (KeyEvent. KEYCODE_MENU );
}
});
public static void simulateKey(final int KeyCode) {
new Thread() {
public void run() {
try {
Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(KeyCode);
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}