Cocos2d-x 3.2 android实现原生对话框

接着昨天的返回键往下写,返回键的操作经常会应用到哪里呢?游戏退出时,下面是用jni实现的按返回键弹出原生对话框退出游戏的代码,有问题可以留言


.cpp

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include "platform/android/jni/JniHelper.h"
#include "jni.h"
#endif



void MenuLayer::onKeyReleased(EventKeyboard::KeyCode keyCode,Event* event)
{
 
#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
 
    if(keyCode == EventKeyboard::KeyCode::KEY_ESCAPE)
    {
        JniMethodInfo info;
        bool isExit = JniHelper::getStaticMethodInfo(info,"org/cocos2dx/cpp/AppActivity","exitGame","()V");
 
        if(isExit)
        {
            CCLOG("hahahaha!!!");
            info.env->CallStaticVoidMethod(info.classID,info.methodID);
        }
        else
        {
            CCLOG("on exist!!!");
        }
 
    }
 
#endif
 
}



3.2版本的引擎pro.android项目里原来的XXActivity.java 入口类变成了AppActivity.java 看了看论坛里版主的解释是跟之前的没有什么区别,虽然是空的,但可以自己动手把onCreateonCreateView等补充完整,已紧不用在本类里处理加载lib了,下面直接贴出这个类的实现代码

public class AppActivity extends Cocos2dxActivity {

public static Handler handler;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

handler = new Handler() {

@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
Builder builder = new Builder(AppActivity.this);
builder.setTitle("确认退出游戏?")
.setPositiveButton("确定",new OnClickListener() {

@Override
public void onClick(DialogInterface dialog,int which) {
System.exit(0);
}
}).setNegativeButton("取消",null).show();
break;


default:
break;
}

}

};

}

@Override
public Cocos2dxGLSurfaceView onCreateView() {
return super.onCreateView();
}

public static void exitGame() {
Message meg = new Message();
meg.what = 1;
handler.sendMessage(meg);

}

}

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...