我正在构建一个安卓应用程序,它基本上是一个RSS阅读器,使用基于活动的TabHost将不同的主题分隔成选项卡。
我有一个名为“刷新”的菜单命令,它基本上触发一个AsyncTask并解析RSS,并将其存储在设备上的SQLLite表中。
当用户单击选项卡时,我将一个主题id传递给Activity,以便只从数据库中拉出该主题的条目。在onResume中是当我刷新提要时,所以当他们点击每个选项卡时,他们就会得到最新的项目。
我的问题是,当用户单击RSS项目时,它会在浏览器中打开该项目,但当他们单击back按钮时,它应该会记住他们的位置。但是,按back将启动onResume并刷新提要,因此它会自动向上滚动到顶部。
我可能缺少一个显而易见的解决方案,但我很难想出一个好的解决方案。
发布于 2012-01-17 09:08:40
在您的onPause()方法中,记录用户正在查看的位置,以便您的onResume()方法可以将视图定位在用户离开的位置。
发布于 2012-01-17 09:09:08
一种解决方案可能是保存onStop()事件上的活动状态,然后根据您试图实现的行为,使用onRestart()或onStart()事件自动显示最后选择的元素上的列表。

参考资料:http://developer.android.com/reference/android/app/Activity.html
发布于 2012-01-17 09:48:50
如果它对任何人有帮助,这就是我为了让它工作而做的。在onListItemClick事件中,我在listview上使用getFirstVisiblePosition()将位置存储在成员变量中,然后在onResume上使用setSelection(lastPosition)设置位置。
https://stackoverflow.com/questions/8888459
复制相似问题