Android返回到Activity而不重新加载父Activity

5

我有一个场景,我在点击ListFragment并像下面这样启动新的Activity:

public void onListItemClick(ListView l, View v, int position, long id) {

  super.onListItemClick(l, v, position, id);

  Intent intent = new Intent(getActivity(), VenueBeerActivity.class);
  Parcelable wrapped = Parcels.wrap(mAdapter.getItem(position));
  intent.putExtra("venue", wrapped);

  startActivity(intent);
}

这个工作良好,显示了新的活动。

我已经修改了这些活动的清单,使其指向它的父活动(在这种情况下为主要活动)

然而,我的问题是当按下返回按钮时,它重新加载整个父级。父级是一个列表,我不想重新加载用户的位置。我该如何防止这种情况发生?

值得一提的是,父级拥有一个页面选项卡条。

我相信这是一个相对简单的解决方法...


有人发布了一篇帖子,然后又将其删除了...但这让我找到了我所需要的东西!android:launchMode="singleInstance" - aherrick
你的第一个活动可能会在后台被销毁并需要重新创建。你必须处理这个问题... - ElDuderino
2个回答

11

"后退按钮" 是什么意思?是工具栏中的上方按钮吗?如果是这种情况,请在您的 VenueBeerActivity 中编辑 onOptionsItemSelected 为:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    switch (id) {
        case android.R.id.home:
            onBackPressed();
            return true;  
    }

    return super.onOptionsItemSelected(item);
}

当用户按下“向上”按钮时,它将获得导航栏中“返回”按钮的行为。


这拯救了我的一天!我在使用SimpleAdapter时遇到了问题,看到了各种保存状态的答案,但没有一个真正有效或看起来不过度。谢谢! - John T

1
在父活动中,将android:launchMode属性设置为singleTop。这可以防止系统在按上按钮时创建父活动的新实例。

我正在使用Android导航,但似乎无法解决问题。 - obey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接