我有两个活动A和B.A有一个使用LoaderManager的ListFragment,而B活动显示有关在A的ListFragment中选择的项目的详细信息.我刚刚注意到,当我使用后退按钮从B返回到A时,ListFragment中的位置保留,但是当我在操作栏中使用向上按钮(左点插入符号)时,A活动重新创建,因此列表视图中的位置将丢失.
我想解决这个问题,但我不确定如何做到这一点的最好方法.
我想出了这个解决方案:
a)使用 onBackPressed()
替换android.R.id.homeB活动中(向上操作栏按钮)的默认实现,而不是NavUtils.navigateUpFromSameTask(this)函数调用onBackPressed()activity方法.我测试了它,它的工作原理.
b)继续使用 NavUtils.navigateUpFromSameTask(this)
但是在A活动使用的ListFragment方法onSaveInstanceState期间实现并恢复listView位置onCreate.(我还没有测试过这种方法)
哪种解决方案更好?或者还有其他(更好的)解决方案吗?
解决方案a)非常简单直接,但b)可能更好,因为使用了up caret 的默认实现.
欢迎任何想法.谢谢.
android ×1