您应该为问题创建一个主布局,其中包含一个TextView
for 语句、一个FrameLayout
用于 answer layout 的容器(如 )以及 next 和 previous Button
。在容器中,您可以放置两个视图,一个ListView
和一个EditText
用于可编辑的答案。两者的可见性都消失了。
现在,一旦您看到主布局,您就可以在相同的布局中加载每个问题。您将需要设置语句视图的文本,如果您的问题有选项,则设置ListView
可见性,在其中加载数据并将其设置为单选/多选。否则,如果您的问题有可编辑的答案,则设置为EditText
可见,(将可见性设置ListView
为消失)。
这将比为每个问题增加单独的布局更有效,还ListView
可以完美地处理任意数量的选项,可以是单选/多选,并允许滚动到与屏幕大小无关的任何选项。
布局 XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView android:id="@+id/question__Statement"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<FrameLayout android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
>
<ListView android:id="@+id/question__options"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
/>
<EditText android:id="@+id/question__text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
/>
</FrameLayout>
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<Button android:id="@+id/question__prev"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_alignParentLeft="true"
android:text="Previous"
/>
<Button android:id="@+id/question__next"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_alignParentRight="true"
android:text="Next"
/>
</LinearLayout>
</LinearLayout>