Cocos2d-x C++调用Android弹出提示框

来源:未知 责任编辑:责任编辑 发表时间:2013-11-18 20:55 点击:
Cocos2d-x中提供了一个JniHelper类来让我们对Jni进行操作。 p> 

p>(PS:弄了一天想自己写代码操作Jni的,但是总是出错,技术差不得不使用Cocos2d-x现成的了)。

p> 

p> 

p>我们有一个Android工程 :CocosDemoAndroid

p> 

p>还有一个Win32工程:Cocos2dDemo.win32

p> 

p>这个是必备的。。。

p> 

p> 

p>在C++ Win32工程中有一个Scene,点击按钮调用Jni函数。

p> 

p>[cpp]  

p>void CallJni::getInputCallBack(CCObject* pSender)  

p>{  

p>    g_AndroidPlatform.showDialog();  

p>  

p>}  

p> 

p>这个 g_AndroidPlatform.showDialog(); 在这个函数里面使用JniHelper类来使用Jni。

p> 

p>[cpp]  

p>void AndroidPlatform::showDialog()  

p>{  

p>    CCLog("showDialog");  

p>  

p>#ifdef ANDROID  

p>    //下面是利用jnihelper类来调用Android Static  

p>    JniMethodInfo methodInfo;  //jni函数信息结构体  

p>    /*getStaticMethodInfo获取到MethodId和ClassId,ClassID通过穿进去的Activity即类名获取,MethodId通过函数名获取*/  

p>    bool isHave=JniHelper::getStaticMethodInfo(methodInfo,"com/example/cocosdemoandroid/MainActivity","showMessage","()V");  

p>    if(isHave)  

p>    {  

p>        /*调用这个函数*/  

p>        methodInfo.env->CallStaticVoidMethod(methodInfo.classID,methodInfo.methodID);  

p>    }  

p>  

p>#endif  

p>}  

p> 

p>C++层关键的代码就是这两个了,在使用JniHelper的时候不要忘记加上头文件

p>[cpp]  

p>#ifdef ANDROID  

p>#include<jni.h>  

p>#include"platform/android/jni/JniHelper.h"  

p>#endif  

p> 

p> 

p>下面来看Android层代码了。

p> 

p>从上面的C++代码中也能看得出来

p> 

p>工程包名 : com.example.cocosdemoandroid

p> 

p>Activity:MainActivity

p> 

p>[java]  

p>public class MainActivity extends Cocos2dxActivity {  

p>  

p>    public static   Context mContext;  

p>  

p>      

p>      

p>    /*****消息类型****/  

p>    private static final int SHOW_MESSAGE = 0;  

p>      

p>    private static Handler handler=new Handler()  

p>    {  

p>        @Override  

p>        public void handleMessage(Message msg)  

p>        {  

p>            //接受消息然后去做相应的事情  

p>            if(msg.what==SHOW_MESSAGE)  

p>            {  
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • cocos2d-x学习笔记(19)--label 、label atlas
  • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
  • Cocos2d-x学习(一):HelloWorld
  • cocos2dx在xcode下开发,编译到android上(2)
  • cocos2d 设置屏幕默认方向
  • Cocos2d-x 2.0 之 Actions “三板斧” 之一
  • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
  • cocos2d-x学习笔记(18)--游戏打包(windows平台)
  • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1