建立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();
}