将我当前的项目转换为片段。迷失了我的项目

时间:2015-02-10 14:31:27

标签: java android android-fragments

我完全迷失了我的项目,我需要有人指出我正确的方向,因为现在我只是看着我的代码,我不知道从哪里开始。

我的应用程序就是回答问题。如果问题是对或错,玩家必须回答。如果他回答了正确的问题,他就会解开一个新的水平。所以直到今天我才想到我需要在每个级别创建一个新活动,在该活动中创建问题并让它运行。但就在今天,我意识到有100个不同级别的活动只是愚蠢。

所以我需要让我的应用程序使用片段。我唯一需要的是让它在每个不同的级别上我的应用程序将从问题列表中选择特定的问题并显示它们的值。

现在我在关卡活动中创建问题。例如:Level1Activity

 //Creating questions. (Question, boolean, answer).
        final Question first = new Question("Do i understand this code?", true, "Only Jesus knows");
        final Question second = new Question("Why dont i understand this code?", false, "Im not Jesus");
        final Question third = new Question("Why I am not Jesus?", true, "2fat.");

        //Creating Lists for questions and boolean values.
        final ArrayList<Question> questions = new ArrayList<Question>();
        final ArrayList<Boolean> type = new ArrayList<Boolean>();

        //Adding questions to the question list
        questions.add(first);
        questions.add(second);
        questions.add(third);

        // Adding boleans to the boolean list
        type.add(first.correctAnswer);
        type.add(second.correctAnswer);
        type.add(third.correctAnswer);

那么我需要做什么,以便我不需要在每个级别上创建一个包含新问题的新活动。你可以制作一个活动并用各种级别的片段显示它们吗?

2 个答案:

答案 0 :(得分:0)

您必须在所有级别开始使用相同的片段,并动态加载问题。每个级别使用一个活动是一个非常糟糕的主意。

首先,尝试创建一个片段,对其进行充气并使用它,并模拟一个级别。也许(父/持有者)活动可以控制当前级别,并可以相应地将问题传递给片段,并保存分数或游戏状态等属性。

请注意,从 MVC 模型 - 视图 - 控制器)角度来看,Activity是 Controller 并且保留 Controller 中的模型数据。屏幕转动时,将重新创建视图层次结构(视图)和活动(控制器)。最好使用一个单独的类,可能是一个单例,以保持必须在屏幕转动时存活的数据。

答案 1 :(得分:0)

也许你也不需要片段。您可以拥有多个布局(通过setContentView(int id)使用),甚至更好,可以在其上放置一个包含多个TextView实例的布局,并以编程方式在这些文本视图中设置文本。

顺便说一下,你可以startActivity()并在当前活动中调用finish()(我不是说你应该这样做,但你可以这样做。)