我是Android开发的完全noob,我希望通过构建一个真实的测验应用程序来改善。我有一些非常高级别的问题:
一个测验屏幕有一个问题和五个答案。这是使用一个活动创建的。现在我希望用户导航到下一个屏幕,这只是下一个问题,依此类推。
我是否针对每个问题创建新活动,还是使用相同的活动切换内容?我该怎么做?
内容资源是XML Feed - 那么如何帮助用户从问题屏幕导航到问题屏幕?
答案 0 :(得分:3)
您无需创建其他活动。只需更改下一步按钮的视图内容即可。
假设您正在TextView
上显示问题,那么只需在下一次点击事件中更改其文本即可。同样的事情也适用于答案。
答案 1 :(得分:1)
我建议使用Fragments approach
答案 2 :(得分:1)
对于您描述的具体示例,绝对没有理由进行多项活动。
如果您对问题长度和答案长度(以及答案数量)有特定限制,您可以布置一个xml,其中已准备好填充TextView
个,然后您可以动态填写值当你从一个问题转到另一个问题。如果你想得到额外的时髦,添加一个ViewFlipper
并在运行时将该布局膨胀到鳍状肢,并添加一个动画,让用户在逐个问题时获得更流畅的体验。 / p>
我认为这个问题有点过于宽泛,你应该开始实际编写应用程序并在遇到麻烦时提出更具体的问题(你可能没有)。
答案 3 :(得分: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);
在下一个问题按钮的Activity类中单击
这样做 / **它会删除你膨胀的所有视图。
layout.removeAllViews();
这是一种很好的做法。
答案 4 :(得分:0)
无需创建新活动。只需更改页面内容即可。