将Intent设置为TabActivity中的返回键

时间:2012-05-04 04:29:16

标签: android android-intent android-tabhost tabactivity

我有三个活动 - A B和C,其中B是 Tab Activity 。 活动A首先启动,B从A启动。当使用此代码启动B时,我完成了活动A.

public void onStop() {
   super.onStop();
   this.finish();
}

现在我想在B中按下后退键时启动活动C.

我尝试使用此代码重写后退键

@Override 
public void onBackPressed() { this.getParent().onBackPressed();
}

在启动子活动时完成父活动时,这不起作用。按回键时实际发生的事情是“活动”退出到主屏幕。

我尝试覆盖后退键并将Intent设置为

@Override
public void onBackPressed() {
    Intent backIntent = new Intent();
    backIntent.setClass(this, main.class);
    startActivity(backIntent);
}

这对我没有帮助。 什么可能是这个问题的可能解决方案,如何在按下后退键时启动活动C?

3 个答案:

答案 0 :(得分:5)

首先,当活动A停止时,你不应该完成活动A这是完全错误的方法,而不是你在开始活动B时必须完成活动。

例如

Intent i = new Intent(this, B.class);
startActivity(i);
finish();

现在您想在用户按下后退按钮时启动活动C,因此请使用以下代码。

@Override
public void onBackPressed() {
    Intent backIntent = new Intent(this, C.class);
    startActivity(backIntent);
    super.onBackPressed();
}

答案 1 :(得分:1)

您必须覆盖onKeyDown

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub

    if (keyCode == event.KEYCODE_BACK)
    {
        //Do your code here
    }
    return super.onKeyDown(keyCode, event);
}
}

当用户按下设备硬后退按钮时,将调用此方法。

导航到下一个活动:     StartActivity(new Intent(getApplicationContext(),main.class));

答案 2 :(得分:0)

覆盖以下方法并导入事件.....

public boolean onKeyDown(int keyCode, KeyEvent event) 
{
// TODO Auto-generated method stub

   if (keyCode == event.KEYCODE_BACK)
   {
      //Write your intent or other code here
   }
   return super.onKeyDown(keyCode, event);
}