【问题标题】:Triggering a method from one class to an other using a button in Android SDK使用 Android SDK 中的按钮触发从一个类到另一个类的方法
【发布时间】:2011-09-08 10:35:32
【问题描述】:

很抱歉,如果问得太多,但我找不到足够清楚的东西。

我正在为安卓开发一个小游戏引擎。 我已经实现了一个游戏手柄类来控制触摸屏。 如果有人触摸右侧区域,游戏手柄类会绘制模拟摇杆,并且还会绘制侧面的按钮。

问题是,简单来说,我有主类 GAME,即 LEVEL 类和 GAMEPAD 类。

在 GAMEPAD 代码中,当有人按下\释放按钮时,我可以触发事件。 问题是我不想通过按下按钮来触发主 GAME 类的某些东西是在 GAMEPAD 类中处理的。

在 C# 中,我会使用事件和委托。

在 Java 中我不知道......我希望 gpad 调用一个方法来注册谁。

这就是我希望在 GAME 主类上实现的目标。

.. void onGpadClick (e EventArgument) { if (e.Button==Button.A&&e.ButtonState==ButtonState.Pressed) Shoot();

}

提前致谢

【问题讨论】:

    标签: java android events event-delegation


    【解决方案1】:

    您可以使用 Intents 实现此目的。

    http://www.vogella.de/articles/AndroidIntent/article.html

    【讨论】:

      【解决方案2】:

      你可以这样做:

      1. 让您的 GAMEPAD 类接收 GAME 类实例(在其构造函数中或通过设置方法)
      2. 在您的 GAME 类中,您可以添加包含您想要为每个按钮执行的操作的方法,例如onButtonAClicked()onButtonBClicked()onPadClicked()。 (如果这些是选项 - 如果您有更多选项,请添加更多选项)。
      3. 通过在每个按钮上设置 OnClickListener 来检测来自 GAMEPAD 类的点击,例如buttonA.setOnClicklistner( new OnClickListener() { //override the onClick-method here } ) 然后覆盖 onClick 方法并在那里添加您的实现,例如myGame.onButtonAClicked()

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-01
        • 2019-07-04
        • 1970-01-01
        • 2020-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多