2

我在 Android 开发方面完全是菜鸟,我想通过构建一个真实的测验应用程序来变得更好。我有一些非常高级的问题:

  1. 一个测验屏幕有一个问题和五个答案。这是使用一项活动创建的。现在我希望用户导航到下一个屏幕,即下一个问题等等。

  2. 我是为每个问题创建一个新活动,还是使用相同的活动切换内容?我该怎么做呢?

内容资源是一个 XML 提要 - 那么我如何帮助用户从一个问题屏幕导航到另一个问题屏幕?

4

5 回答 5

3

您无需创建其他活动。只需更改下一个按钮单击时的视图内容。

假设您在 上显示问题TextView,然后只需在下一次单击事件中更改它的文本。同样的事情也适用于答案。

于 2013-03-11T11:00:16.707 回答
1

我建议使用Fragments 方法

于 2013-03-11T11:00:29.517 回答
1

对于您描述的特定示例,绝对没有理由进行多项活动。

如果您对问题长度和答案长度(以及答案数量)有特定限制,您可以布置一个 xml,其中TextView准备好填充这些 s,然后您可以在从一个问题移动到另一个问题时动态填写值。如果您想使用它变得更加时髦,请ViewFlipper在运行时将布局添加并膨胀到鳍状肢中,并添加动画以使用户在从一个问题到另一个问题时获得更流畅的体验。

我确实认为这个问题有点太宽泛了,您应该开始实际编写应用程序并在遇到麻烦时提出更具体的问题(您可能不会)。

于 2013-03-11T11:01:27.447 回答
1

我认为不要选择多项活动来代表不同的问题。

在您的 main.xml 布局中

<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/linear_Layout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
        </LinearLayout>
    </LinearLayout>

只需膨胀您要表示的视图并添加到此 LinearLayout。回答一个问题后,只需删除膨胀的视图,然后再次膨胀新的视图,依此类推。

LayoutInflater mInflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        View view= (View) mInflater.inflate(R.layout.question1, null);
        LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);
        p.setMargins(5, 5, 5, 5);
        layout.setGravity(Gravity.CENTER_HORIZONTAL);
        layout.addView(view, p);

在下一个问题按钮的活动类中单击

这样做 /** 它将删除您夸大的所有视图。

layout.removeAllViews();

这是一个很好的做法。

于 2013-03-11T11:09:20.467 回答
0

无需创建新活动。只需更改页面的内容。

于 2013-03-11T11:01:22.123 回答