Android中的后退按钮导航

时间:2013-04-30 07:34:10

标签: android

我是android的新手。我按下按钮时遇到问题。

如果我使用完成特定视图被破坏。下次我按后退按钮,应用程序结束。 我需要使用后退按钮进行控制导航

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

我的流程应该是

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

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

但是当用户从D导航到A

时 如果他按下后退按钮

再次

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

请帮忙

6 个答案:

答案 0 :(得分:1)

您想从D导航到活动A.因此,您可以从D调用活动A,如下所示

Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //clears B and C from stack.
startActivity(intent);

答案 1 :(得分:0)

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

答案 2 :(得分:0)

只需覆盖

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

在您的A活动上启动D活动。

答案 3 :(得分: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);
}

答案 4 :(得分:0)

试试这个 只需在活动A中输入相同的内容,无需更改

@覆盖     public void onBackPressed(){

}

答案 5 :(得分: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被破坏(使用完成),C至D - > C被破坏,您可以使用后退按钮直接从D到A.如果在从D到A之后再次按下后退按钮,它将进入D,再次按下它将进入A(第一个活动已启动。)然后再次按下后App将结束。