java - Android:与通用功能通信,无论类如何

标签 java android oop android-fragments

我有一个具有不同级别的游戏,级别之间有很多共享代码。因此,我有包含所有共享代码的 MainActivity,这会为每个级别加载一个 fragment LevelOne,其中包含级别特定的代码。我需要使用 fragment ,因为我还加载其他带有其他 UI 组件的 fragment 。

关卡 fragment 都包含同名的函数,并且每个关卡的代码都是唯一的,例如StartGame() 和 PauseGame(),MainActivity 在必要时调用。如何加载允许我访问这些函数的单个对象,无论它是什么 fragment ?

例如在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中我不能这样做,因为我必须事先指定对象的类,而我不知道该类,相反我必须在我引用级别的任何地方都具有这些if条件:

// 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();
}

最佳答案

为什么每个级别都需要另一个类(class)?

Level levelOne = new Level(1);  
Level levelTwo = new Level(2);

关于java - Android:与通用功能通信,无论类如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55264583/

相关文章:

java - 如何捕获 Volley 中的意外响应错误

JavaScript:增量方法

c# - 我可以在基类中有一个总是在子实现之前调用的默认方法吗?

java - 无法连接到 Watson Platform

java - 保护 Spring Boot 2 Actuator Prometheus 端点

Android - 新的 AdmobApi 不适用于 android 中的广告

java - 订阅主题突然抛出 "java.io.IOException: InternalServerError"

python - 创建对象属性的引用列表

java - 具有子状态的 Spring 状态机生成器抛出错误 - "Initial state not set"

java - JPA QueryDSL 存在并计数