小编Tom*_*och的帖子

哪一个使用NavUtils.navigateUpFromSameTask()与onBackPressed()

我有两个活动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

18
推荐指数
1
解决办法
8158
查看次数

标签 统计

android ×1