首先要说的是我是初学者,现在我正在开发我的第一个“真正的”Android应用程序(它将在Google Play上)。
我已经谷歌了很多关于Android的这个“测验”应用程序,我无法得到关于这个的好信息或项目示例(大多数代码/项目示例都是关于viewFlipper
/ TextSwitcher
每次更改触摸屏幕 - 不是我想要的。我也尝试在Stackoverflow中搜索,我得到的是一些没有好/有帮助答案的低调问题。
所以我的应用程序中会有一个测验部分,我会有3种问题:
radiobutton
回答checkboxlist
回答edittext
答案的问题我的应用中会有大约50个问题,因此我计划创建3种不同的布局。
这些是我的问题:
viewFlipper
布局或其他方式)viewFlipper
生成3种不同类型的问题(3种布局)?如何执行此操作?谢谢:D
答案 0 :(得分:2)
您应该为问题创建一个主布局,其中包含TextView
for语句,答案布局的容器(如FrameLayout
),以及之前的Button
。在容器中,您可以放置两个视图,ListView
和EditText
,以获得可编辑的答案。两者的可见性为GONE。
现在,一旦您看到主布局可见,您就可以在同一布局中加载每个问题。您需要设置语句视图的文本,如果您的问题有选项,则设置ListView
visibile,在其中加载数据并将其设置为单/多选。另外,如果您的问题有可编辑的答案,则可以将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>
答案 1 :(得分:1)
我找到了一个很棒的示例应用程序:
https://github.com/robhinds/AndroidChuckQuiz
它使用了一个很难的SQLite数据库,你可能想要读取它,然后再构建一个“顶部”的应用程序。