Cocos2d-x调用Java 代码

Java代码:

package com.dishu;

import com.dishu.org.R;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Looper;

public class Dialog {
    public static Dialog ins = null;
    public static Dialog getInstance(){
        if (ins == null){
            ins = new Dialog();
        }
        return ins;
    }  

    private Activity _activity;
    public void initRoot(Activity root)
    {
        _activity = root;
    }
    public void showQuitDialog()
    {
        _activity.runOnUiThread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                AlertDialog.Builder builder = new AlertDialog.Builder(_activity);
                builder.setMessage(R.string.msg);
                builder.setPositiveButton(R.string.sure, new DialogInterface.OnClickListener(){
                    public void onClick(DialogInterface dialoginterface, int i){
                        //按钮事件
                        _activity.finish();
                        System.exit(0);
                     }
                });
                builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialoginterface, int i){
                        //按钮事件
                     }
                });
                builder.create().show();
            }
        });
    }
}
public class AppActivity extends Cocos2dxActivity {

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

        Dialog.getInstance().initRoot(this);
    }
}

cocos2dx代码:

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include <jni.h>
#include "platform/android/jni/JniHelper.h"
#include <android/log.h>
#endif 
        // JNI call test
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
        JniMethodInfo minfo;
        jobject jobj;
        if (JniHelper::getStaticMethodInfo(minfo, "com/dishu/Dialog",
            "getInstance", "()Lcom/dishu/Dialog;"))
        {
            jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID);
            if (JniHelper::getMethodInfo(minfo, "com/dishu/Dialog",
                "showQuitDialog", "()V"))
            {
                minfo.env->CallVoidMethod(jobj, minfo.methodID);
            }
        }

#endif  
时间: 2024-11-09 05:08:25

Cocos2d-x调用Java 代码的相关文章

Android的WebView通过JS调用java代码

做项目时候会遇到我们用WebView 打开一个web,希望这个web可以调用自己的一些方法,比如我们在进一个web页面,然后当我们点击web上的某个按钮时,希望能判断当前手机端是否已经登录,如果未登录,那么就会跳转到登录页面(登陆页面是另一个Activity).这个时候,一个简单的做法就是在按钮动作事件的js上调用java的方法,从而起到判断是否登录,并决定是否跳转到另一个页面. Google的WebView为我们提供了 addJavascriptInterface(Object obj, St

Android的JS调用Java代码或使用了Javascript相关技术改如何混淆

http://www.androidren.com/index.php?qa=282&qa_1=android的js调用java代码或使用了javascript相关技术改如何混淆 Android 4.2开始 JS调用Java代码的时候必须加上@JavascriptInterface才能调用. 加上@JavascriptInterface之后就必须要考虑混淆时候的问题,如果混淆的时候把@JavascriptInterface搞丢了你的程序就无法调用了. 其实很简单,你只需要在混淆里面加上: -ke

六、Android学习笔记_JNI_c调用java代码

1.编写native方法(java2c)和非native方法(c2java): package com.example.provider; public class CallbackJava { // C调用java空方法 public void helloFromJava() { System.out.println("hello from java"); } // C调用java中的带两个int参数的方法 public int Add(int x, int y) { int res

Android学习笔记_JNI_c调用java代码

1.编写native方法(java2c)和非native方法(c2java): package com.example.provider; public class CallbackJava { // C调用java空方法 public void helloFromJava() { System.out.println("hello from java"); } // C调用java中的带两个int参数的方法 public int Add(int x, int y) { int res

python调用Java代码,完毕JBPM工作流application

1.缘由 有一庞大Python django webproject,要引入工作流引擎,像OA一样.方便的流程控制与管理.Python或django关于工作流的开源插件,稀少,并且弱爆了,终于选用java的开源框架JBPM.为了使Pythonproject整合Java框架,尝试过jbpm-console提供的 REST, 以失败告终,终于选用Python 直接调用Java代码.操作JBPM. 1.1pythonprojectREST与JBPM Workbench交互 失败 REST URL格式 h

Unity3D研究院之打开Activity与调用JAVA代码传递参数

原地址:http://www.xuanyusong.com/archives/667    Unity for Android 比较特殊,Unity for IOS 打包是将XCODE工程直接交给开发者,开发者可以在工程的基础上继续添加新的视图,最后由开发者自行打包生成IPA包,发布程序.而Unity for Android打包直接生成APK包,等于说源代码开发者是看不到的,但是Unity的自身确实有些局限,针对Android平台我们需要学习如何在Unity中调用Android的JAVA代码.本

C#调用java代码(IKVMC)

参考资料:https://blog.csdn.net/threadroc/article/details/51406587 参考1:http://www.cnblogs.com/Jack-Blog/p/4710848.html?utm_source=tuicool&utm_medium=referral 参考2:http://www.tuicool.com/articles/EZJ7zqR 环境: jdk-7windows-x64     (友情提示:不要用最新版的jdk, jdk1.8应该不行

Python调用Java代码部署及初步使用

Python调用Java代码部署: jpype下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype 下载的时候需要使用Chrome浏览器进行下载. 安装顺序: 1.pip install wheel 待wheel安装好以后,再安装已经下载的JPype1-0.6.2-cp36-cp36m-win_amd64.whl 文件 2.pip install JPype1-0.6.2-cp36-cp36m-win_amd64.whl 如果有问题,缺少库

Esper调用Java代码执行系统命令

Esper语言是可以调用高级语言的静态方法的: 以调用Java的静态方法执行系统命令为例: select Runtime.getRuntime().exec(\"calc\"),avg(price) from " + product + ".win:length_batch(3) 完整代码可以参考如下链接: http://blog.csdn.net/luonanqin/article/details/9900295

Android平台下使用lua调用Java代码经验总结

动态语言以其执行的灵活性,可配置性.方便调试能够为开发带来极大的方便.假设用好了.能够极大的提高开发的效率. 怪不得像游戏开发这样复杂的软件开发里没有不集成脚本语言的. 当中,lua以其小巧,灵活.方便扩展,方便嵌入被用于大多数的游戏开发中. 对于我来说.对于一个充分认识到动态的力量的人来说,在软件开发里集成一种脚本语言成为一种非常重要的非常有意义的工作. 可是在Android平台.在试过Python后,发现尽管集成也不是什么困难的事,可是感觉它还是有点大,一个动态库就有3M多,python库还