java监听android返回键_quick-cocos2d-x android返回键监听并实现原生退出对话框

这两天终于闲了一下,就顺手又把quick捡起来又学了学,一直都觉得quick比cocos2dx那套lua绑定要方便许多,今天试了下android返回键的监听,还是挺好弄的,所以就有了这篇。

首先说明一下使用的quick版本——2.2.5。

直接上代码

function MainScene:addBackEvent()

if device.platform == "android" then

self.touchLayer = display.newLayer()

self.touchLayer:addNodeEventListener(cc.KEYPAD_EVENT, function(event)

if event.key == "back" then

--CCDirector:sharedDirector():endToLua()

local javaClassName = "com/cocos2dx/testgame/Testgame"

local javaMethodName = "exit"

luaj.callStaticMethod(javaClassName, javaMethodName)

end

end)

self.touchLayer:setKeypadEnabled(true)

self:addChild(self.touchLayer)

end

end比较好理解,创建一个层,为该层添加一个事件监听,这个事件监听的类型是keypad,如果key的值是back那么就执行里面的代码了,如果不需要显示android原生的对话框,只要关闭程序,只需要执行上面代码中注释的部分就可以了。

2.2.3之后的版本在添加事件监听上与之前有所不同,这里需要注意下。

当然做软件嘛,好歹有个温馨提示,防止用户无意点到退出游戏就不友好了,所以这里调用了一下android原生对话框来显示。quick提供了一个luajavabridge这个sample,可以很轻松调用到android中的静态函数。

这里还是贴一下android中调用的函数代码

public static void exit() {

instance.runOnUiThread(new Runnable() {

@Override

public void run() {

Builder builder = new Builder(instance);

builder.setTitle("提示");

builder.setMessage("确定退出吗");

builder.setIcon(android.R.drawable.ic_dialog_info);

builder.setPositiveButton("确定", new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

System.exit(0);

}

});

builder.setNegativeButton("取消", new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();}

}).show();

}

});

}这样就大功告成!

原文:http://blog.csdn.net/w337198302/article/details/38423857

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值