我想在android应用程序上做一些简单的事情。 怎么可能回到以前的活动。

我需要什么代码回到以前的活动


当前回答

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

这将使您到前一个活动保持其堆栈,并从堆栈中清除它之后的所有活动。

例如,如果堆栈为A->B->C->D,并且您以该标志开始B,则堆栈将为A->B

其他回答

您是否想要控制后退按钮的行为?您可以通过以下两种方法之一重写后退按钮(以转到特定的活动)。

Android 1.6及以下版本:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

或者如果你只支持android2.0或更高版本:

@Override
public void onBackPressed() {
    // do something on back.
    return;
}

详情请访问:http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

如果你已经正确设置了AndroidManifest.xml文件的父活动,你可以使用:

NavUtils.navigateUpFromSameTask(this);

这是你的儿童活动。

Android活动存储在活动堆栈中。回到以前的活动可能意味着两件事。

You opened the new activity from another activity with startActivityForResult. In that case you can just call the finishActivity() function from your code and it'll take you back to the previous activity. Keep track of the activity stack. Whenever you start a new activity with an intent you can specify an intent flag like FLAG_ACTIVITY_REORDER_TO_FRONT or FLAG_ACTIVITY_PREVIOUS_IS_TOP. You can use this to shuffle between the activities in your application. Haven't used them much though. Have a look at the flags here: http://developer.android.com/reference/android/content/Intent.html

正如注释中提到的,如果活动是用startActivity()打开的,那么可以用finish()关闭它。 如果你想使用向上按钮,你可以在onOptionsSelected(MenuItem item)方法中捕捉到,检查android.R.id.home的项目ID,而不是评论中提到的R.id.home。

@Override
public void onBackPressed() {
    super.onBackPressed();
}

如果你想点击返回按钮,然后简单地放

bbsubmit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        onBackPressed();
    }
});

使用intent启动第二个活动(根据您的需求使用startActivity或startActivityForResult)。现在当用户按下后退按钮时,上面的当前活动将被关闭,上一个活动将被显示。

现在假设您有两个活动,一个用于为用户选择一些设置,如语言、国家等,选择后,用户单击Next按钮进入登录表单(例如)。现在如果登录不成功,那么用户将处于登录活动中,如果登录成功怎么办?

如果登录成功,那么您必须启动另一个活动。这意味着将启动第三个活动,并且仍然有两个活动正在运行。在这种情况下,使用startActivityForResult会很好。当登录成功时,将OK数据发送回第一个活动并关闭登录活动。现在,当接收到数据时,然后使用finish启动第三个活动并关闭第一个活动。