1

我有一个与不同活动之间导航有关的问题,onPause 和 onRestore 可能会解决问题,但我不知道如何解决。

问题是我的应用程序中有以下屏幕

  1. HomeActivity - 这是欢迎屏幕
  2. CategoryActivity - 这里有三个类别,例如动物、植物和水果。
  3. QuestionsActivity - 根据类别的选择,每个问题都可用。每个类别有 50 个问题。该应用程序有多项选择题类型。

所以应用程序的流程是当用户来选择一个类别时,我从我的 xml 中为该类别填充 50 个问题的数组列表,然后在 QuestionActivity 屏幕上一一显示这些问题。在这里,每次用户单击类别时,我都会打乱数组列表并显示计数。即你完成了 1 个问题,你完成了 2 个问题等。

所以这是关于我的应用程序和现在的问题:

假设用户在 QuestionActivty 中,他回答了 5 个问题,然后单击移动设备的后退按钮,因此他被重定向到 CategoryActivity 屏幕。现在从这里开始,如果他再次点击同一个类别,他将被重定向到 QuestionActivity 屏幕,但他的问题从第 1 个问题开始:(。理想情况下,它应该从第 6 个问题开始,因为他已经回答了 5 个问题。

有人可以帮我解决这个问题吗?如果我坚持计数,那么每次我洗牌数组列表时它对我都不起作用(所以回答的问题可能会重复。)理想的解决方案应该是让android在时间管理 QuestionActivity 的状态单击后退按钮并在再次选择相同类别时恢复相同状态

这一定是一个普遍的问题,所以如果你已经解决了,请帮助我。

非常感谢,伊山

4

2 回答 2

0

我建议考虑将这些数据存储在 SQLite DB 或 SharedPreferences 文件中。通过这种方式,您可以记录用户离开的位置,并根据其中一种存储机制中的值提出下一个问题。

http://developer.android.com/guide/topics/data/data-storage.html

于 2011-08-16T15:57:28.217 回答
0

为什么不使用 StartActivityForResult()。将 int x = 5 发回给 CategoryActivity,然后当您恢复 QuestionActivity 时,您可以在 Bundle extras 中将 x 连同它一起发回。那么 QuestionActivity 知道从第 6 个(x+1)问题开始。

如果问题是随机排列的,你就会遇到问题,因为第 6 个问题可能与前 5 个问题相同。因此,不要只发送一个 int x ,而是发送一个已回答的问题编号的整数数组。

于 2011-08-16T16:28:55.513 回答