回答(23)

android uiautomator 返回桌面 android返回上一步_ide

2 years ago

如果您已正确设置具有活动父级的AndroidManifest.xml文件,则可以使用:

NavUtils.navigateUpFromSameTask(this)

;

这是您的孩子活动 .

android uiautomator 返回桌面 android返回上一步_ide_02

2 years ago

默认情况下,所有新活动/意图都具有后退/上一行为,除非您在调用活动上编码 finish() .

android uiautomator 返回桌面 android返回上一步_sed_03

2 years ago

你想控制后退按钮的行为吗?您可以通过两种方法之一覆盖后退按钮(转到特定活动) .

适用于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);
}
或者,如果您只支持Android 2.0或更高版本:
@Override
public void onBackPressed() {
// do something on back.
return;
}

android uiautomator 返回桌面 android返回上一步_堆栈_04

2 years ago

只需调用这些方法即可完成当前活动或通过onBackPressed返回

finish();

要么

onBackPressed();

android uiautomator 返回桌面 android返回上一步_sed_05

2 years ago

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 .

android uiautomator 返回桌面 android返回上一步_android 返回 java_06

2 years ago

只是这个

super.onBackPressed();

android uiautomator 返回桌面 android返回上一步_android 返回 java_07

2 years ago

@Override
public void onBackPressed() {
super.onBackPressed();
}
如果你想要按钮点击返回然后简单地把
bbsubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});

android uiautomator 返回桌面 android返回上一步_堆栈_08

2 years ago

你可以明确地调用 onBackPressed 是最简单的方法

有关详细信息,请参阅Go back to previous activity

android uiautomator 返回桌面 android返回上一步_android 返回 java_09

2 years ago

使用intent启动第二个活动(根据您的要求使用 startActivity 或 startActivityForResult ) . 现在,当用户按下后退按钮时,顶部的当前活动将被关闭,之前的活动将被显示 .

现在假设您有两个活动,一个用于为用户选择一些设置,如语言,国家等,选择后,用户单击“下一步”按钮转到登录表单(例如) . 现在如果登录失败,那么用户将登录登录活动,如果登录成功怎么办?

如果登录成功,则必须启动另一项活动 . 这意味着将启动第三个活动,仍然有两个活动正在运行 . 在这种情况下,最好使用 startActivityForResult . 登录成功后,将OK数据发送回第一个活动并关闭登录活动 . 现在,当收到数据时,然后启动第三个活动并使用完成关闭第一个活动 .

android uiautomator 返回桌面 android返回上一步_android 返回 java_10

2 years ago

我建议使用NavUtils.navigateUpFromSameTask(),这很容易也很简单,你可以从谷歌开发者那里学到它 . 希望我能帮到你!

android uiautomator 返回桌面 android返回上一步_sed_11

2 years ago

在onCLick()方法中添加它,它将返回到您之前的活动

完成();

或者您可以使用它 . 它对我来说很完美

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if ( id == android.R.id.home ) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}

android uiautomator 返回桌面 android返回上一步_android 返回 java_12

2 years ago

你可以试试这个:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}

android uiautomator 返回桌面 android返回上一步_sed_13

2 years ago

得到了同样的问题和

finish(); OR super.onBackPressed();

我工作得很好,两者都一样,但没有运气 return

android uiautomator 返回桌面 android返回上一步_sed_14

2 years ago

回到之前的活动的情况很少:

Case 1: 如果您想将结果恢复到之前的活动,那么 ActivityA.java
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.

android uiautomator 返回桌面 android返回上一步_android 返回 java_15

2 years ago

@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 .

android uiautomator 返回桌面 android返回上一步_sed_16

2 years ago

试试Activity#finish() . 这或多或少是默认情况下后退按钮的作用 .

android uiautomator 返回桌面 android返回上一步_sed_17

2 years ago

试试这个,第一个活动

Intent mainIntent = new Intent(Activity1.this, Activity2.class);
this.startActivity(mainIntent);
在你的第二个活动中
@Override
public void onBackPressed() {
this.finish();
}

android uiautomator 返回桌面 android返回上一步_堆栈_18

2 years ago

只需点击 finish() 即可 . 它将带你到上一个活动 .

android uiautomator 返回桌面 android返回上一步_堆栈_19

2 years ago

如果你想去只是想去以前的活动使用

finish();

要么

onBackPressed();

如果你想进入第二项活动或以下使用以下活动:

intent = new Intent(MyFourthActivity.this , MySecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//Bundle is optional
Bundle bundle = new Bundle();
bundle.putString("MyValue1", val1);
intent.putExtras(bundle);
//end Bundle
startActivity(intent);

android uiautomator 返回桌面 android返回上一步_堆栈_20

2 years ago
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

这将使您进入之前的活动,保持其堆栈并清除堆栈后的所有活动 .

例如,如果堆栈是A-> B-> C-> D并且您使用此标志启动B,则堆栈将为A-> B

android uiautomator 返回桌面 android返回上一步_sed_21

2 years ago

从 FirstActivity 使用 startActivityForResult() 方法调用 SecondActivity

对于例:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);

在 SecondActivity 中设置要返回 FirstActivity 的数据 . 如果你没有设置任何 .

例如:如果要发回数据,请在 secondActivity 中:

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();
如果您不想返回数据:
Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();
现在在 FirstActivity 类中编写 onActivityResult() 方法的以下代码 .
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
String result=data.getStringExtra("result");
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}//onActivityResult

android uiautomator 返回桌面 android返回上一步_android 返回 java_22

2 years ago
Try this is act as you have to press back button
finish();
onBackPressed();