Запуск метода из одного класса в другой с помощью кнопки в Android SDK - PullRequest
0 голосов
/ 08 сентября 2011

Извините, если об этом слишком много спрашивают, но я не могу найти что-то достаточно ясное.

Я разрабатываю небольшой игровой движок для Android.Я уже реализовал класс геймпада для управления сенсорным экраном.Класс игровой площадки рисует аналоговую палку, если кто-то касается правой области, а также рисует кнопки на боковых сторонах.

Проблема в том, что, делая это проще, у меня есть основной класс GAME, который как класс LEVEL и GAMEPADкласс.

Внутри кода GAMEPAD я могу вызывать вещи, когда кто-то нажимает \ отпускает кнопку.Проблема в том, что я не хочу вызывать что-либо в главном классе GAME нажатием кнопки, которая обрабатывается в классе GAMEPAD.

В C # я бы использовал события и делегировал.

В Javaя понятия не имею ... я хочу, чтобы gpad вызывал метод для зарегистрированного пользователя.

Это то, чего я надеюсь достичь в основном классе GAME.

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

}

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 08 сентября 2011

Что вы можете сделать, это:

  1. Пусть ваш GAMEPAD-класс получит экземпляр GAME-класса (либо в его конструкторе, либо с помощью метода set)
  2. В вашем GAME-классе вы добавляете методы, содержащие то, что вы хотите сделать для каждой кнопки, например onButtonAClicked(), onButtonBClicked() и onPadClicked(). (Если это варианты - добавьте больше, если у вас есть больше вариантов).
  3. Обнаружение щелчков из вашего класса GAMEPAD путем установки OnClickListener для каждой кнопки, например. buttonA.setOnClicklistner( new OnClickListener() { //override the onClick-method here } ) Затем переопределите метод onClick и добавьте туда свою реализацию, например. myGame.onButtonAClicked().

Надеюсь, это поможет.

0 голосов
/ 08 сентября 2011

Вы можете достичь этого, используя Intents.

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

...