【问题标题】:Android Custom EventAndroid 自定义事件
【发布时间】:2012-09-17 16:38:27
【问题描述】:

我是 Android 和 Java 开发的新手,我希望实现自定义事件,但是经过大量研究并尝试了各种不同的方法,我似乎无法让它发挥作用。

我实际上是在尝试创建一个战斗系统,我已经在 .NET 中实现了该系统,但似乎无法在 Java 中运行,它需要我为诸如 DealtDamage、DamageReceived、Died 等事物创建事件。

这将从角色对象中继承信息,包括生命值、攻击、防御等。

有人可以提供示例代码,我可以如何创建这些事件,然后在不同的类中对它们进行操作。

例如造成的伤害

user1 atk - user 2 def = totalatk 返回总攻击

谢谢

【问题讨论】:

  • 如果你已经在 .net 中做过,你可以使用 MonoTouch 吗?
  • 这个问题也不清楚,这只是在设备上还是通过网络到服务器端?
  • user1 atk - user 2 def = totalatk return totalatk ??????
  • @MorrisonChang 都在设备上,我从 SQLite 数据库中获取所有数据。
  • @Simon,因为我正在创建一个战斗系统,例如你的角色正在攻击一个怪物。你的角色攻击点是 10,但你的怪物有 5 点防御。因此,当你攻击怪物时,你实际上只会造成 5 点伤害。希望这更清楚。谢谢

标签: java android events interface


【解决方案1】:

如果您尝试从您的类生成回调(引发事件):

在产生回调的类中:

public interface EventHappened{
        void callback(int arg1, String arg2);
}

...

ArrayList<EventHappened> eventHappenedObservers = new ArrayList<~>;

...

public void setEventHappenedObserver(EventHappened observer){
     eventHappenedObservers.add(observer);
}

...

if (eventHasHappened){
    for (EventHappened eventHappenedObserver:eventHappenedObservers){
        eventHappendedObserver.callback(event.number,event.toString());
    }
}

...

在消费类中:

instanceOfClassRaisingCallback.setEventHappendedObserver(new EventHappened{
     @Override
     void callBack(int arg1, String arg2){
          doStuffWithArgs(arg1,arg2);
     }
   )};

(凭记忆,为拼写错误和语法错误道歉,但你明白了……我希望)

祝你好运。

【讨论】:

  • 虽然我最终创建了一个自定义事件并检查了我的相关对象。
猜你喜欢
  • 1970-01-01
  • 2017-02-18
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 2017-02-13
相关资源
最近更新 更多