我有一个与不同活动之间的导航相关的问题,onPause和onRestore可能会解决问题,但我不知道如何。
问题是 我的应用程序中有以下屏幕
所以应用程序的流程是当用户来到并选择一个类别时,我从我的xml中为该类别填充50个问题的arraylist,然后在QuestionActivity屏幕上逐个显示这些问题。 在这里,每次用户点击该类别时,我都会对这个类型进行洗牌 并显示计数。即你完成了1个问题,你完成了2个问题等。
所以这是关于我的应用程序和现在的问题:
假设用户在QuestionActivty中,他回答了5个问题然后单击移动设备的后退按钮,以便将其重定向到CategoryActivity屏幕。现在,如果他再次点击相同的类别,他将被重定向到QuestionActivity屏幕,但他的问题从第一个问题开始:(。理想情况下,它应该从第6个问题开始,因为他已经回答了5个问题。
有人可以帮我解决这个问题吗?如果我坚持计数,那么每次我洗牌时都不会对我有用(所以回答的问题可能会重复。) 理想的解决方案应该是让android在点击后退按钮时管理QuestionActivity的状态,并在再次选择相同的类别时恢复相同的状态
这一定是一个常见的问题,所以如果你已经解决了,请帮助我。
提前多多感谢, 依禅
答案 0 :(得分:0)
我建议将这些数据存储在SQLite DB或SharedPreferences文件中。这样,您就可以记录用户离开的位置,并根据其中一个存储机制中的值显示下一个问题。
http://developer.android.com/guide/topics/data/data-storage.html
答案 1 :(得分:0)
为什么不使用StartActivityForResult()。将一个int x = 5发送回CategoryActivity,然后当你恢复QuestionActivity时,你可以在Bundle extras中将x发送回来。然后,QuestionActivity知道从第6(x + 1)个问题开始。
如果问题是随机排序的,那么您将遇到问题,因为第6个问题可能与前5个问题相同。因此,不是仅发送一个int x,而是发送已经回答的问题编号的整数数组。