在Quiz应用程序中重用每个任务的UI?

时间:2015-04-03 18:23:50

标签: android

我的情况是用户参加了一个有40多个问题的测验。创建40多个活动是一项繁琐的任务。我想知道有什么东西可以重复使用吗?

activity_main.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=".MainActivity"
   >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Who founded Apple?"
        android:id="@+id/textView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="49dp" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText"
        android:text="Fill answers here"
        android:layout_below="@+id/textView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="37dp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Next"
        android:id="@+id/button"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/editText"
        android:layout_toEndOf="@+id/editText"
        android:clickable="true" />
</RelativeLayout>

在我的MainActivity.class中,我通常会像

一样
Button bt = (Button) findViewById(R.id.button);

        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

               // ....Go to next activity through Intent...
            }
        });

查看onClick,我需要为每个不好的问题进行每项活动。

还有其他解决方案吗?

2 个答案:

答案 0 :(得分:0)

如果你没有,你可能想为你的quizes创建一个数据结构。获得数据结构后,您可以考虑要使用哪种类型的适配器:即将您的一组quizes链接到UI的机制。例如,当需要显示某个列表时,listview与ArrayAdapter(或BaseAdapter用于更多自定义样式列表视图)一起使用。

在支持库中有一个名为viewpager的东西,它是一组可以在其间水平滑动的页面。你可以考虑使用它。

或者您可以创建自己的视图类,其中包含显示测验所需的所有视图,添加像switchQuiz(Quiz q)这样的方法,用新的测验信息更改ui,并在单个活动中使用此视图。具体来说,您可以使用activity_main.xml布局文件,而不是将其用作活动的布局,创建一个自定义视图(public class QuizView extends RelativeLayout { }),该视图可以更新ui以用于切换测验功能。请阅读此处了解有关如何执行此操作的详细信息:http://trickyandroid.com/protip-inflating-layout-for-your-custom-view/

答案 1 :(得分:0)

创建两个按钮,prev和next ..

prev带你去上一个问题然后接下来问你

创建包含以下变量

的类问题
int number_of_option;
    String[] options;
    String question;
    String answer;

创建一个包含ArrayList<question> list;的课程测验 添加所需方法添加问题,获取问题,更新答案..等等。等等。

在测验类中创建变量current_position_in_UI,以在活动中显示该问题。

在下一个/上一个按钮上,单击调用测验方法以获取问题字段。像list.get(position)这样的东西,并用该调用上的那些值更新你的视图。还要更新current_position_in_UI。希望它有所帮助:)