内部如何打开相同的Activity?

时间:2014-01-30 18:19:42

标签: android android-intent android-activity

我有一个显示衣服列表的HomeActivity,点击其中一个打开DetailsActivity,在左侧显示其详细信息。在右侧,我展示了更多衣服的清单,“你可能也喜欢这些:”。

点击其中一件推荐的衣服后,我想在当前打开另一个DetailsActivity,而不是替换它的内容。

当用户按下“返回”按钮时,我想在HomeActivity之前将每个细节拆开。

我该怎么做?我查看了所有Intent标志,并没有看到找到方法。

- = UPDATED = -

我尝试了片段而不是活动,但是当我旋转屏幕时片段的堆栈就丢失了。

FragmentDetails fDetails = new FragmentDetails();
Bundle args = new Bundle();
args.putInt(FragmentDetails.BILLING_ID, billingId);
fDetails.setArguments(args);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(android.R.id.content, fDetails, UUID.randomUUID().toString());
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();

这是打开相同Activity的方法,它不起作用:

Intent intent = new Intent(this, ActivityDetails.class);
intent.putExtra(ActivityDetails.BILLING_ID, billingId);
startActivity(intent);

1 个答案:

答案 0 :(得分:1)

您应该以其他方式处理此问题,例如交换片段或仅使用新数据(布料细节)更新视图,而不是重新打开活动。

如果你真的需要,你可以开始新的活动并完成旧活动。

startActivity(yourIntent);
finish();

这样,如果用户按下,应用程序将转到主视图。