第一种方式:
直接修改Cocos2dxGLSurfaceView类中的onKeyDown方法,修改如下:
<span style="font-size:18px;">@Override
public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent) {
switch (pKeyCode) {
case KeyEvent.KEYCODE_BACK:
Log.d("", "KEYCODE_BACK+++++++++++++++++");
new AlertDialog.Builder(Spartacus.getActivity())
.setTitle(R.string.exit_tip)
.setMessage(R.string.exit_message)
.setNegativeButton(R.string.exit_cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
})
.setPositiveButton(R.string.exit_confirm,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
//finish();
System.exit(0);
}
}).show();
return true;
case KeyEvent.KEYCODE_MENU:
this.queueEvent(new Runnable() {
@Override
public void run() {
Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleKeyDown(pKeyCode);
}
});
return true;
default:
return super.onKeyDown(pKeyCode, pKeyEvent);
}
}</span>
第二种方式:
1)、先修改修改Cocos2dxGLSurfaceView类中的onKeyDown方法,修改如下:
@Override
public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent) {
switch (pKeyCode) {
case KeyEvent.KEYCODE_BACK:
return false;
case KeyEvent.KEYCODE_MENU:
this.queueEvent(new Runnable() {
@Override
public void run() {
Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleKeyDown(pKeyCode);
}
});
return true;
default:
return super.onKeyDown(pKeyCode, pKeyEvent);
}
}
2)、在继承自Cocos2dxActivity类的,我们自己的activity类中覆盖父类的onKeyDown方法:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Log.d("", "onKeyDown++++++++++++++++++");
if (keyCode == KeyEvent.KEYCODE_BACK) {
new AlertDialog.Builder(this)
.setTitle(R.string.exit_tip)
.setMessage(R.string.exit_message)
.setNegativeButton(R.string.exit_cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
})
.setPositiveButton(R.string.exit_confirm,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
finish();
System.exit(0);
}
}).show();
return true;
} else {
return super.onKeyDown(keyCode, event);
}
}
http://blog.csdn.net/zh379835552/article/details/17732403