我正在开展测验申请。 对于一个问题,我有一个普通的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;英寸
我试图从活动/片段教程中学习,但不幸的是,我检查的那些没有指出我的要求。
答案 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并完成它,当你遇到困难时,请发表评论
希望这会有所帮助。