创建测验应用程序 - 使用视图

时间:2015-03-18 19:18:15

标签: java android

我正在开展测验申请。 对于一个问题,我有一个普通的Java类,看起来像这样:

public class Question {
    private String question;
    private LinkedList<Answer> answers;

    public String getQuestion(){
        return this.question;
    }

    public LinkedList<Answer> getAnswers(){
        return this.answers;
    }

    public Question(String question, LinkedList<Answer> answers){
        this.question = question;
        this.answers = answers;
    }

    public boolean checkIfCorrectAnswer(Answer answer){
        if (null == answer)
            return false;
        for (Answer i : answers){
            if (i == answer && answer.isCorrectAns())
                return true;
        }
        return false;
    }
}

和一个看起来像这样的答案类:

public class Answer {
    private String answerTxt;
    private boolean correctAns;

    public String getAnswerTxt() {

        return answerTxt;
    }

    public boolean isCorrectAns() {
        return correctAns;
    }

    public Answer(String answerTxt) {
        new Answer(answerTxt, false);
    }
    public Answer(String answerTxt, boolean correctAns){
        this.answerTxt = answerTxt;
        this.correctAns = correctAns;
    }


}

现在我想创建一个视图(xml文件),它将显示每个问题及其选项,我接近了,这就是结果:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".QuizActivity$PlaceholderFragment">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Large Text"
        android:id="@+id/textViewQuizTitle"
        android:layout_marginTop="35dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Medium Text"
        android:id="@+id/textViewQuizQuestion"
        android:layout_below="@+id/textViewQuizTitle"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="35dp" />

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/textViewQuizQuestion"
        android:layout_marginTop="20dp"
        android:weightSum="1">

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button"
            android:layout_weight="0.04" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button2"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.04" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button3"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.04" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button4"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.04" />

    </LinearLayout>

</RelativeLayout>

我现在有两个问题 - 我不知道如何将一个简单的java类附加到视图中,另一个问题是&#34;导航&#34;在问题之间,当有人正确回答问题时,应该再次加载视图,但使用不同的问题&#34;问题&#34;英寸

我试图从活动/片段教程中学习,但不幸的是,我检查的那些没有指出我的要求。

4 个答案:

答案 0 :(得分:1)

关于将Java类附加到视图的问题,我建议您在Activity类中创建或获取此类的实例。例如,Question question1 = new Question(<constructor args here>)。为每个问答对象执行此操作。

对于导航问题,您需要在按钮上实现onClick侦听器,以便通过单击其中一个按钮了解某人何时提交了答案。

答案 1 :(得分:1)

我建议您使用ViewPager来管理您的测验应用。 Android documentation有一个示例应用程序,您可以从中开始。

我假设你会有一个问题集(即问题和答案列表)。此问题集可用于填充ViewPager,并且可以使用问题集的大小指定ViewPager中的页数。我相信这可以解决你的“导航问题”。

对于另一个问题,您可以根据问题和答案的类型动态扩充布局。您没有提供有关您的问题和答案类型/要求的足够信息,因此在我知道问题类型/要求之前,我无法提出更好的建议。

如果您需要更多信息,请告诉我。

答案 2 :(得分:1)

实际上,您为活动配置了xml布局。只有当你总是要用4个答案选项(按钮)显示一个问题时,才能学习有关活动和一些逻辑,你可能会使用你的xml布局。您可能应该使用另一个组件,如单选按钮或Spinner而不是4个按钮,以获得更好的UI设计。你需要的是简单的,但在开始之前你必须先了解Activity和View。

答案 3 :(得分:0)

首先,你必须创建一个活动 使用Eclipse或Android Studio,您可以使用向导创建一个简单的空白活动。默认名称通常是MainActivity 在生成的main_activity.xml文件中,粘贴上面的xml 现在你有了主视图 我不建议您使用View Pagers。你应该首先熟悉android开发。
我记得我开始学习Android,我想创建一个简单的问答游戏 这tutorial给了我很多帮助。
抓住complete source code并完成它,当你遇到困难时,请发表评论 希望这会有所帮助。