Android: общение с общими функциями независимо от класса - PullRequest
0 голосов
/ 20 марта 2019

У меня есть игра с разными уровнями, с большим количеством общего кода между уровнями.Итак, у меня есть MainActivity, которая содержит весь общий код, и он загружает фрагмент LevelOne для каждого уровня с кодом, специфичным для уровня.Мне нужно использовать фрагменты, так как я также загружаю другие фрагменты с другими компонентами пользовательского интерфейса.

Все фрагменты уровня содержат функции с одинаковыми именами и уникальным для каждого уровня кодом, например StartGame () и PauseGame (), которые MainActivity вызывает при необходимости.Как загрузить один объект, который позволяет мне получить доступ к этим функциям, независимо от того, какой это фрагмент?

Например, в Python я бы сделал:

// Instantiation
int level_number = 1;  
levels = [levelOne, levelTwo]
level = levels[level_number]

// Something happens and I want to start the currently selected level somewhere in MainActivity
level.StartGame()      

, но в Java я не могу сделатьэто так, как я должен заранее указать класс объекта, который я не знаю, и вместо этого я должен иметь это, если условия везде я ссылаюсь на уровень:

// Instantiation
LevelOne levelOne = new LevelOne();  
LevelTwo levelTwo = new LevelTwo();

// Something happens and I want to start the currently selected level somewhere in MainActivity    
if (level_number == 1) {
   levelOne.StartGame();
} elif (level_number == 2) {
   levelTwo .StartGame();
}

1 Ответ

1 голос
/ 20 марта 2019

Зачем вам нужен еще один класс для каждого уровня?

Level levelOne = new Level(1);  
Level levelTwo = new Level(2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...