Tro*_*roj 496 android android-intent android-activity
我想在Android应用程序上做一些简单的事情.怎么可能回到以前的活动.
我需要什么代码才能回到之前的活动
Abh*_*nav 470
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注释中提到的不同.
ada*_*amp 218
试试Activity#finish().这或多或少是默认情况下后退按钮的作用.
Ata*_*CSE 67
只是这个
super.onBackPressed();
Run Code Online (Sandbox Code Playgroud)
Dmi*_*nko 31
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Run Code Online (Sandbox Code Playgroud)
这将使您进入之前的活动,保持其堆栈并清除堆栈后的所有活动.
例如,如果堆栈是A-> B-> C-> D并且您使用此标志启动B,则堆栈将为A-> B
Bry*_*nny 19
你想控制后退按钮的行为吗?您可以通过两种方法之一覆盖后退按钮(转到特定活动).
适用于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);
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您只支持Android 2.0或更高版本:
@Override
public void onBackPressed() {
// do something on back.
return;
}
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请访问:http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html
Aks*_*wal 19
只需调用这些方法即可完成当前活动或通过onBackPressed返回
finish();
Run Code Online (Sandbox Code Playgroud)
要么
onBackPressed();
Run Code Online (Sandbox Code Playgroud)
Ram*_* G. 13
如果你想去只是想去以前的活动使用
finish();
Run Code Online (Sandbox Code Playgroud)
要么
onBackPressed();
Run Code Online (Sandbox Code Playgroud)
如果你想进入第二项活动或以下使用以下活动:
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);
Run Code Online (Sandbox Code Playgroud)
Tho*_*aux 11
如果您已正确设置具有活动父级的AndroidManifest.xml文件,则可以使用:
NavUtils.navigateUpFromSameTask(this);
Run Code Online (Sandbox Code Playgroud)
这是您的孩子活动.
Dar*_*huu 11
在onCLick()方法中添加它,它将返回到您之前的活动
完();
或者您可以使用它.它对我来说很完美
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if ( id == android.R.id.home ) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)
得到了同样的问题和
finish(); OR super.onBackPressed();
Run Code Online (Sandbox Code Playgroud)
我工作得很好,两者都一样,但没有运气 return
使用intent(使用startActivity或startActivityForResult根据您的要求)启动第二个活动.现在,当用户按下后退按钮时,顶部的当前活动将被关闭,之前的活动将被显示.
现在让我们说你有两个活动,一个是选择一些设置,对于用户来说,就像语言,国家等,并选择它后,下一步按钮,用户点击进入登录表单(例如).现在如果登录失败,那么用户将登录登录活动,如果登录成功怎么办?
如果登录成功,则必须启动另一项活动.这意味着将启动第三个活动,并且仍然有两个活动正在运行.在这种情况下,使用起来会很好startActivityForResult.登录成功后,将OK数据发送回第一个活动并关闭登录活动.现在,当收到数据时,然后启动第三个活动并使用完成关闭第一个活动.
你可以试试这个:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
@Override
public void onBackPressed() {
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
如果你想点击按钮返回然后简单地把
bbsubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
581651 次 |
| 最近记录: |