使用libgdx已经有一段时间了.最近经常有朋友问我如何在libgdx中调用android的内容.

正常来说libgdx是跨平台的,gdx中的代码是不允许有任何其他平台的相关代码,但实际使用时经常会有调用其他平台内容的需求.其实这个也很简单,利用java中的事件机制很容易实现,下面贴出相关代码:

1:BsuEvent是一个虚类,用来实现消息通知及响应消息后执行的一些操作.

public abstract class BsuEvent {
public abstract void notify(Object obj,String msg);
}

2:libgdx主类代码,构造函数中带入了一个BsuEvent对象,这个对象赋给bevent,以后想什么时候调用android中的内容,执行bevent的notify方法并带入执行消息字符串就可以了。

public class BsuGame extends Game {
public BsuEvent bevent = null; //用于通知desktop或android等其他平台执行某些操作 public BsuGame(BsuEvent be){
bevent = be;
bevent.notify(this, "test");
}
@Override
public void create() {
} @Override
public void dispose() {
super.dispose();
}
}

3:这里是android客户端的主类我们可以看到在BsuGame构造函数中实现了一个匿名内部类BsuEvent实例,并覆盖了它的虚方法notify.notify中就是要调用的android内容,由于是在android环境下,所以我们可以随心所欲的调用android内容Toast,来实现显示一条浮动消息的功能.

public class MainActivity extends AndroidApplication {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = true; initialize(new BsuGame(new BsuEvent(){
@Override
public void notify(Object obj, String msg) {
Toast.makeText(MainActivity.this, "libgdx消息通知", Toast.LENGTH_SHORT).show();
}
}), cfg);
}
}

仅供初学者参考,高手就不要来拍砖了.

最新文章

  1. 树莓派系统介绍:DIetPi
  2. 使用Github管理项目代码的版本
  3. js解析格式化json日期
  4. 一大早居然有骗子还是傻子,真是莫名其妙的,QQ1913522040,一看就是刚申请不久的
  5. [CF 474E] Pillars (线段树+dp)
  6. 【bzoj1085】[SCOI2005]骑士精神
  7. CentOS6.5 64bit 运行Mono程序
  8. MarkDown 格式生产类型
  9. 执行hadoop fs -ls时出现错误RuntimeException: core-site.xml not found
  10. Spring Boot 启动加载数据 CommandLineRunner
  11. java cglib动态代理原理及样例
  12. 浅谈C++调用C#的DLL程序方法
  13. PC-常见问题-清除浮动
  14. 我来谈谈PHP和JAVA的区别
  15. ubuntu下mysql提示Changed limits: max_open_files:1024解决办法
  16. 嵌入Python | 调用Python模块中无参数的函数
  17. C型USB能阻止危险充电器通过USB传播恶意软件
  18. WCF实现多个服务
  19. 50个CSS技巧
  20. Windows 2003 server下载

热门文章

  1. 关于WM_ERASEBKGND和WM_PAINT的深刻理解
  2. JavaScript快速入门(四)——JavaScript函数
  3. 自定义NavgationBa返回按钮
  4. Swift - 文本输入框(UITextField)的用法
  5. MongoDB学习笔记(一)
  6. html中的rowspan和colspan
  7. 随想录(关于ucore)
  8. 使用Seam Framework + JBoss 5.0 开发第一个Web应用 - 简单投票程序
  9. ubuntu下海信Hisense E920 usb连接不上的处理与adb的连接
  10. 虚拟机VM10装Mac OS X 10.9.3