我有一个HomeActivity,它显示一个衣服列表,点击其中一个打开DetailsActivity,在左边显示它的详细信息。在右边,我展示了一张更多的衣服清单,“你也会喜欢这些的:”
在点击这些推荐的衣服之一后,我想在当前的顶部打开另一个DetailsActivity,而不是替换它的内容。
因此,当用户按下“后退”按钮时,我希望在HomeActivity之前解开每个细节。
我怎么能这么做?我仔细看了看所有的意图标志,没有看到找到一个方法来做它。
更新的-= =-
我尝试了片段而不是活动,但是当我旋转屏幕时,片段的堆栈就丢失了。
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();
这是打开同一个活动的方法,这个方法不起作用:
Intent intent = new Intent(this, ActivityDetails.class);
intent.putExtra(ActivityDetails.BILLING_ID, billingId);
startActivity(intent);
发布于 2014-01-30 10:25:58
您应该以其他方式处理这个问题,比如交换片段,或者只是用新的数据更新视图(布面细节),而不是重新打开活动。
如果你真的需要,那么你可以开始新的活动,并完成旧的活动。
startActivity(yourIntent);
finish();
这样,如果用户按后退,应用程序将走到主视图。
https://stackoverflow.com/questions/21464477
复制