我的情况是用户参加了一个有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,我需要为每个不好的问题进行每项活动。
还有其他解决方案吗?
答案 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。希望它有所帮助:)