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
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· 官方的 MCP C# SDK:csharp-sdk
· 一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
· 提示词工程师自白:我如何用一个技巧解放自己的生产力
· “你见过凌晨四点的洛杉矶吗?”--《我们为什么要睡觉》
· 如何不购买域名在云服务器上搭建HTTPS服务