繁体   English   中英

Android:如何返回上一个活动

[英]Android: How to go back previous Activity

我有四个活动

  • 列表活动
  • Itemdetail_Activity
  • record1_Act
  • record2_act。

我可以正确地从ListActivity -> record1_ActListActivity <-record1_Act去,但是当我想从Itemdetail_Activity -> record2_act 去并从Itemdetail_Activity <- record2_act返回时,它总是去record2_act 到 ListActivity

我什至用过i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 但它不起作用。 如何解决这些问题?

这是我的代码

Intent i = new Intent(record2_act.this, Itemdetail_Activity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);

Intent i = new Intent(record1_Act.this, ListActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
finish();

开始活动后删除 finish() 调用,因为它会从堆栈中清除该活动,我看到您在代码中使用了完成。 您也不需要设置这些标志。

在活动 4 中,将 onBackPressed() 实现为,

@Override
public void onBackPressed()
{
 Intent i = new Intent(4.this, 3.class);
 startActivity(i);
}

如果您有任何后退按钮,请调用此方法。 如果您想为每个活动链接 backpress,您需要在每个活动中实现 onBackPressed() 方法。

如果之前的活动未完成,您可以调用onBackPressed()也可以使用:

this.finish();
// Or
Activity currentActivity = this;
currentActivity.finish();

如果您之前完成了活动,则必须跟踪活动中的用户并制作活动列表,然后转到:

activitiList.get(activityList.size() - 2);
// activityList.size() - 1 is last activity and activityList.size() - 2 is previous activity

检查 ItemDetailsActivity 是否没有调用 finish()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM