我有2个活动,其中一个活动导致另一个活动。 第一个活动显示列表视图,项目点击导致第二个活动。 当我单击后退按钮时,我返回到第一个活动,但列表重新加载并向上滚动到第一个项目。我希望列表在我回到它之后保持原位。
答案 0 :(得分:0)
如果你在活动A中调用finish(),当在背面打开新的活动B时,你将调用活动A的onCreate()以避免这种情况,避免在活动A的onItemClickListner()中调用活动A中的finish()在活动A中记录tge点击的tge位置,在这种情况下,在活动B中调用后退按钮将在活动A中输入tge onResume(),其中你可以调用直接滚动:
getListView().setSelection(<position>);
或者为了顺利滚动:
getListView().smoothScrollToPosition(<position>);
答案 1 :(得分:-1)
当你按下时,你会在该活动上调用oncreate(),以便重新加载所有内容 你可以使用:
getListView().smoothScrollToPosition(yourpostion);
并考虑以另一种方式使用片段。 建议使用recyclerview。
答案 2 :(得分:-1)
如果您未在活动A上致电finish()
,即使您转到活动B并返回,活动A也不应再次呼叫整个onCreate()
。
如果您查看活动的生命周期,它会将活动A放在onPause()
中,可能会onStop()
,这取决于您在活动B上的操作以及您如何定义{{1}在AndroidManifest.xml中。
因此,当您致电launchMode
时,请勿致电startActivity(..)
。否则它将再次加载所有内容以绘制活动A.
另一种可能的方法是使用
finish()
或者您可以使用@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
..
}
。
从Parse.com获取数据结束后(如SharedPreference
的{{1}}),您可以读取从活动B传递的数据,将用户重新定位到它们所在的列表。
编辑:
阅读this article,了解如何“回归”您所在的活动。