Java 我是否需要为每个游戏级别创建新活动?

Java 我是否需要为每个游戏级别创建新活动?,java,android,Java,Android,假设我有一个游戏,你可以回答问题。每个级别的问题都变得越来越难,要打开一个新的级别,您需要回答上一级别中的特定数量的问题。我是否需要创建一个包含每个级别及其自身问题的新活动?如果我有100+级别,我需要100项活动?这不会使应用程序滞后吗?也许还有别的办法?我一直想知道像《糖果粉碎》这样的游戏是如何管理如此多的关卡的?我的做法如下: 1x活动仅用于保存碎片 1x片段,它接收(例如在构造函数中)它需要的数据(在本例中,是您的问题、问题的答案等),然后简单地显示它。 然后,当用户需要更改到另一个问题

假设我有一个游戏,你可以回答问题。每个级别的问题都变得越来越难,要打开一个新的级别,您需要回答上一级别中的特定数量的问题。我是否需要创建一个包含每个级别及其自身问题的新活动?如果我有100+级别,我需要100项活动?这不会使应用程序滞后吗?也许还有别的办法?我一直想知道像《糖果粉碎》这样的游戏是如何管理如此多的关卡的?

我的做法如下:

1x活动仅用于保存碎片 1x片段,它接收(例如在构造函数中)它需要的数据(在本例中,是您的问题、问题的答案等),然后简单地显示它。 然后,当用户需要更改到另一个问题级别时,只需实例化另一个片段并为其提供需要显示的新信息,然后关闭旧片段


最后你会有一个片段,但它会被实例化很多次。

要在Android上创建一个动态的多窗格用户界面,就像你说的,很多级别,你需要将UI组件和活动行为封装到模块中,你可以在活动中交换

您可以使用
Fragment
类创建这些模块,该类的行为有点像一个嵌套的活动,可以定义自己的布局并管理自己的生命周期

那么就不需要100项活动了

您可以参考Android开发者提供的这个官方示例来开始


祝你好运

您可以使用fragment,每次更改级别时都可以替换它。 首先,你必须阅读,然后更换你的片段,如果你改变了水平

替换的一个简单示例是:

Fragment NextLevel= new NextLevel();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, NextLevel);
transaction.addToBackStack(null);
transaction.commit();

如果我必须这样做,我会这样做,希望能有所帮助。

不,您可以使用片段并重用它