@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if ( id == android.R.id.home ) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
Intent intent = new Intent(ActivityA.this, FBHelperActivity.class);
startActivityForResult(intent,2);
FBHelperActivity.java
Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);
finish();
Case 2: ActivityA - > FBHelperActivity ----> ActivityA
ActivityA.java
Intent intent = new Intent(ActivityA.this, FBHelperActivity.class);
startActivity(intent);
FBHelperActivity.java
after getting of result call finish();
By this way your second activity will finish and because
you did not call finish() in your first activity then
automatic first activity is in back ground, will visible.
28
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if ( id == android.R.id.home ) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
试试这个它在 toolbar back button 上同时适用于 hardware back button .
23 回答
如果你想要按钮点击返回然后简单地把
你可以明确地调用
onBackPressed
是最简单的方法有关详细信息,请参阅Go back to previous activity
如果您已正确设置具有活动父级的AndroidManifest.xml文件,则可以使用:
这是您的孩子活动 .
默认情况下,所有新活动/意图都具有后退/上一行为,除非您在调用活动上编码
finish()
.你想控制后退按钮的行为吗?您可以通过两种方法之一覆盖后退按钮(转到特定活动) .
适用于Android 1.6及以下版本:
或者,如果您只支持Android 2.0或更高版本:
有关详细信息:http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html
只需调用这些方法即可完成当前活动或通过onBackPressed返回
要么
Android活动存储在活动堆栈中 . 回到之前的活动可能意味着两件事 .
您使用 startActivityForResult 从另一个活动中打开了新活动 . 在这种情况下,您只需从代码中调用 finishActivity() 函数,它将返回上一个活动 .
跟踪活动堆栈 . 每当您使用intent启动新活动时,您都可以指定意图标记,如
FLAG_ACTIVITY_REORDER_TO_FRONT
或FLAG_ACTIVITY_PREVIOUS_IS_TOP
. 您可以使用它在应用程序中的活动之间进行随机播放 . 虽然没有多用它们 . 看看这里的旗帜:http://developer.android.com/reference/android/content/Intent.html如评论中所述,如果使用
startActivity()
打开活动,则可以使用finish()
将其关闭 . 如果你想使用向上按钮你可以在onOptionsSelected(MenuItem item)
方法中捕获它,并检查项目ID与android.R.id.home
不同,如注释中提到的R.id.home
.只是这个
除了所有提到的答案之外,他们仍然是另一种方法,假设你有两个班,A班和B班 .
A类你已经做了一些活动,如复选框选择,打印出一些数据和意图到B类.B类,你想将多个值传递给A类并保持A类的先前状态,你可以使用,尝试这个替代方案方法或下载源代码来演示这一点
http://whats-online.info/science-and-tutorials/125/Android-maintain-the-previous-state-of-activity-on-intent/
要么
http://developer.android.com/reference/android/content/Intent.html
使用intent启动第二个活动(根据您的要求使用
startActivity
或startActivityForResult
) . 现在,当用户按下后退按钮时,顶部的当前活动将被关闭,之前的活动将被显示 .现在假设您有两个活动,一个用于为用户选择一些设置,如语言,国家等,选择后,用户单击“下一步”按钮转到登录表单(例如) . 现在如果登录失败,那么用户将登录登录活动,如果登录成功怎么办?
如果登录成功,则必须启动另一项活动 . 这意味着将启动第三个活动,仍然有两个活动正在运行 . 在这种情况下,最好使用
startActivityForResult
. 登录成功后,将OK数据发送回第一个活动并关闭登录活动 . 现在,当收到数据时,然后启动第三个活动并使用完成关闭第一个活动 .我建议使用NavUtils.navigateUpFromSameTask(),这很容易也很简单,你可以从谷歌开发者那里学到它 . 希望我能帮到你!
在onCLick()方法中添加它,它将返回到您之前的活动
或者您可以使用它 . 它对我来说很完美
你可以试试这个:
得到了同样的问题和
我工作得很好,两者都一样,但没有运气
return
回到之前的活动的情况很少:
Case 1: 如果您想将结果恢复到之前的活动,那么 ActivityA.java
FBHelperActivity.java
Case 2: ActivityA - > FBHelperActivity ----> ActivityA
ActivityA.java
FBHelperActivity.java
试试这个它在 toolbar back button 上同时适用于 hardware back button .
试试Activity#finish() . 这或多或少是默认情况下后退按钮的作用 .
试试这个,第一个活动
在你的第二个活动中
只需点击 finish() 即可 . 它将带你到上一个活动 .
如果你想去只是想去以前的活动使用
要么
如果你想进入第二项活动或以下使用以下活动:
这将使您进入之前的活动,保持其堆栈并清除堆栈后的所有活动 .
例如,如果堆栈是A-> B-> C-> D并且您使用此标志启动B,则堆栈将为A-> B
从
FirstActivity
使用startActivityForResult()
方法调用SecondActivity
对于例:
在
SecondActivity
中设置要返回FirstActivity
的数据 . 如果你没有设置任何 .例如:如果要发回数据,请在
secondActivity
中:如果您不想返回数据:
现在在
FirstActivity
类中编写onActivityResult()
方法的以下代码 .Try this is act as you have to press back button