使用Intents在活动之间导航

时间:2013-10-07 02:06:48

标签: android android-intent

我通常使用 Intents

在各个活动之间导航

图示表示如下所示::

enter image description here

在活动中 - A ..........有一个下一个按钮可以进入活动B

Photos.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub

                Intent PhotoIntent=new Intent(a.this,b.class);
                startActivity(PhotoIntent);

            }
        });

在活动中 - B ..........有一个下一个按钮可以再次进入活动C

Map.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    Intent PhotoIntent=new Intent(b.this,c.class);
                    startActivity(PhotoIntent);

                }
            });
  • 现在在活动C ....只有一个后退按钮
  • 如果我使用它,我与上面的代码类似,我不能去两个活动 取决于我来自的导航

假设我来自AC ------当我在Back中使用C按钮时转到A

再次来自BC -----当我在Back中使用C按钮时转到B

活动back

中只有一个button C

[编辑]

就像Say我来自Activity A到Activity C -----当我使用Activity C中唯一的后退按钮时,它应该转到activity A

&安培;

对于相同的情况,如果我从活动B到活动C - - - - 当我使用Activity C中的唯一后退按钮时,它应该转到activity B

------- 我试图在ActivityC中关联一个切换案例类型的Back按钮机制


如何实现这个

希望我很清楚

3 个答案:

答案 0 :(得分:1)

There is only one back button in Activity C

如果我理解正确,Activity C可以从Activity AActivity B启动。如果是这种情况,活动C中的后退按钮应具有以下代码:

backButton.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        // Takes you to whichever activity launched C
        finish();
    }
});

从活动A启动活动C时,堆栈为.... {活动A},{活动C}。在活动C中调用Activity#finish()将转到活动A.当从活动B启动活动C时,相同的方案展开。

请注意,如果在启动活动C后调用活动A中的finish(),则返回按钮将转到位于堆栈中活动A之前的活动。

答案 1 :(得分:1)

这样做

backBtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                onBackPressed();

            }
        });

通过这种方式,您可以调用设备的后退按钮功能现在操作系统将根据堆栈确定在哪里导航,无论是活动A还是活动B都在堆栈中。

答案 2 :(得分:1)

在后退按钮点击事件上调用finish()或onBackPressed()函数。