0

我是 android 开发新手。按下返回按钮时出现问题。

如果我使用完成,特定视图会被破坏。下次我按下返回按钮时,应用程序结束。我需要带有后退按钮的受控导航

例如,这些是我的活动 A、B、C、D

我的流程应该是

从活动 A 到 B 到 C 到 D 到 A

并且用户可以在 D 到 A 之间导航

但是当用户从 D 导航到 A

如果他再次按下后退按钮

它不应导航到任何其他活动

请帮忙

4

6 回答 6

1

You want to navigate to Activity A from D. So, you can call Activity A from D as below,

Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //clears B and C from stack.
startActivity(intent);
于 2013-04-30T07:54:15.883 回答
0

试试这个只需在活动A中输入它,就像它一样,没什么可改变的

@Override public void onBackPressed() {

}
于 2013-04-30T08:03:43.157 回答
0

我希望一个活动在后按时保持其状态,只是在开始其他活动之前不要调用 finish() 方法。android:noHistory="true"鉴于清单文件中没有条目,当您按下返回按钮时,Android 会处理上一个活动

于 2013-04-30T07:37:33.140 回答
0

只需覆盖

@Override
    public void onBackPressed() {
        super.onBackPressed();//comment this if you want to implement your own logic
        //Do whatever you like
    }

在你的 A 活动上并开始 D 活动。

于 2013-04-30T07:37:49.723 回答
0

在 D 中覆盖 onBackPress

@Override
public void onBackPressed()
{
    super.onBackPressed();
    Intent i = new Intent(this, A.class);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
}
于 2013-04-30T07:47:07.263 回答
0

每当从另一个活动调用该活动时,调用活动都会根据活动生命周期进入堆栈。当您从 A 移动到 B 时,A 被存储到堆栈中并且 B 被打开。当您按下按钮时,您想去(A 到 B 到 C 到 D 到 A),(D 到 A 或反之亦然)但不是从 B 到 A 或 C 到 B 或 D 到 C 或 A 到 D。

当您从 B 调用活动 C 时,也调用 finish() 来销毁 B,类似地,当您从 C 调用 D 来销毁 C 时,您不能后退。这将限制您的流量。

A类扩展活动{

//按钮点击

Intent intent=new Intent(A.this,B.class);
startactivity(intent);

}

B类扩展活动{

//按钮点击

Intent intent=new Intent(B.this,C.class);
startactivity(intent);
finish();

}

C类扩展活动{

//按钮点击

Intent intent=new Intent(C.this,D.class);
startactivity(intent);
finish();

}

D类扩展活动{

//按钮点击

Intent intent=new Intent(D.this,A.class);
startactivity(intent);

}

这样当你从A到B -> A存入栈,B到C -> B被销毁(使用finish),C到D -> C被销毁,你可以直接从D到A使用后退按钮。如果你从D到A后再次按下返回按钮,它将来到D,再次按下返回将到达A(第一个活动启动。)然后再次按下返回后应用程序将结束。

于 2013-04-30T08:17:52.660 回答