BackButton调用以前的活动

时间:2013-06-25 06:17:29

标签: android main-activity

使用此代码我称之为Next Activity。

代码

public void click_contact(View v)
{
 Intent myIntent = new Intent(MainActivity.this, ContactActivity.class);
 MainActivity.this.startActivity(myIntent);
 overridePendingTransition (R.anim.slide_in_right, R.anim.slide_out_left);
 finish();
}

所以'ContactActivity'已经发布了。 当按下设备内置的“后退”按钮时,前一个活动('MainActivity')将关闭。 但我想重新启动这项活动。

5 个答案:

答案 0 :(得分:1)

删除finsh();在最后一行并尝试。然后按下后退按钮即可获得主要活动。

希望它会对你有所帮助。

答案 1 :(得分:0)

覆盖backPress将启动新意图。这是不好的!只是不正​​确完成()。我想这应该会自动转到上一个活动。

答案 2 :(得分:0)

这是你的代码

    public void click_contact(View v){
    Intent myIntent = new Intent(MainActivity.this, ContactActivity.class);
    MainActivity.this.startActivity(myIntent);
    overridePendingTransition (R.anim.slide_in_right, R.anim.slide_out_left);
    finish();
}

为什么你使用finish()。通过使用完成,您将从活动堆栈中移除或活动(在您的情况下为 MainActivity )。或者您可以说活动不会被添加到堆栈。因此,在按下后,将不会加载任何活动。所以不要使用finish()

只需使用

startActivity(new Intent(ContactActivity.this, MainActivity.class));
overridePendingTransition (R.anim.slide_in_right, R.anim.slide_out_left);

因此,删除完成后,您的 MainActivity 将添加到活动堆栈中,然后在 ContactActivity 中按下它,它将自动加载您的 MainActivity

关注this

答案 3 :(得分:0)

您是否删除了MainActivity中的finish()

然后,检查启动MainActivity的意图的FLAG。您可能使用过FLAG_NO_HISTORY。这意味着活动将在完成背景后完成。

答案 4 :(得分:-1)

如果要恢复MainActivity,则应从代码中删除 finish()。 的代码

public void click_contact(View v)
{
    Intent myIntent = new Intent(MainActivity.this, ContactActivity.class);
    MainActivity.this.startActivity(myIntent);
    overridePendingTransition (R.anim.slide_in_right, R.anim.slide_out_left);
}

如果你想在ContactActivity中重新启动MainActivity,那么你应该在onBackPressed()中启动它:

<强>代码

@Override
public void onBackPressed() 
{
    Intent myIntent = new Intent(ContactActivity.this, MainActivity.class);
    startActivity(myIntent);
    super.onBackPressed();
}