Не работает кнопка возврата Android
Я использую cocos2dx, чтобы сделать маленькую игру, и в своей игре я даю следующие функции для обработки кнопки назад.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
return super.onKeyDown(keyCode, event);
}
@Override
public void onDestroy()
{
android.os.Process.killProcess(android.os.Process.myPid());
super.onDestroy();
}
При нажатии на кнопку "Назад" я получаю следующее предупреждение в моем logcat
Не удается открыть файл keycharmap
Ошибка при загрузке файла цепочки ключей '/system/usr/keychars/qtouch-touchscreen.kcm.bin'. hw.keyboards.65538.devname='QTouch-сенсорный экран'
Вызов не достигает функций onKeyDown или onDestroy.
Пожалуйста, скажите мне, почему это предупреждение вызвано и почему я не могу обработать кнопку возврата Android.
Функции отлично работают на моем проекте Java-Android, но не в моем проекте Cocos2D-X
5 ответов
Это было обработано здесь в файле Cocos2dxGLSurfaceView.java
измените его на ниже, где myActivity
такое cocos2dActicity
case KeyEvent.KEYCODE_BACK:
AlertDialog ad = new AlertDialog.Builder(myActivity)
.setTitle("EXIT?")
.setMessage("Do you really want to exit?")
.setPositiveButton("YES", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
((Cocos2dxActivity)myActivity).finish();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}).create();
ad.show();
return true;
case KeyEvent.KEYCODE_MENU:
Чтобы обработать нажатие кнопки назад, вам нужно переопределить onBackPressed()
метод вашей деятельности, а не это два метода.
Просто ваши приложения реализуют метод переопределения для onKeyDown,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Here to implements for your code.
Log.d(TAG, "KEYCODE_BACK");
}
return super.onKeyDown(keyCode, event);
}
Вы включили сенсорный? Если нет, то, пожалуйста, включите его, и надеюсь, это решит вашу проблему.
Я полагаю, это кнопка на экране вашей игры.