1

首先要说的是我是一个初学者,现在我正在开发我的第一个“真正的”安卓应用程序(它将在 Google Play 上)。我已经在谷歌上搜索了很多关于这个安卓“测验”应用程序的信息,我无法获得很好的信息,也无法获得关于这个的项目示例(大多数代码/项目示例都是关于每次触摸屏幕时viewFlipper/TextSwitcher更改 - 这不是我想要的)。我还尝试在 Stackoverflow 中进行搜索,但我得到的是一些被否决的问题,没有一个好的/有帮助的答案。

所以我的应用程序中会有一个测验部分,我会有 3 种类型的问题:

  1. 一个有radiobutton答案的问题
  2. 一个有checkboxlist答案的问题
  3. 一个有edittext答案的问题

我的应用程序中将有大约 50 个问题,所以我计划创建 3 种不同的布局

这些是我的问题:

  1. 你有任何链接/例子吗?请分享(我已经尝试自己找到):D
  2. 最好的方法是什么?(例如:像使用viewFlipper布局或其他东西)
  3. viewFlipper是否可以使用?如何生成 3 种不同类型的问题(3 种布局) ?

谢谢 :D

4

2 回答 2

2

您应该为问题创建一个主布局,其中包含一个TextViewfor 语句、一个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>
于 2012-10-06T14:02:20.687 回答
1

我为您找到了一个很棒的示例应用程序:

https://github.com/robhinds/AndroidChuckQuiz

它使用了一个 SQLite 数据库,你可能想在“之上”构建一个应用程序之前阅读它。

于 2012-10-06T13:50:07.747 回答