jgm*_*jgm 49 android android-actionbar android-actionbar-compat
我有一个相对简单的Android应用程序,其中一个Activity显示项目列表,另一个显示所选项目的详细信息.我启动list活动,这是我最重要的活动(FLAG_ACTIVITY_CLEAR_TOP用于清除调用它的登录活动):
Intent intent = new Intent(this, ListInstancesActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)
并且从该活动中我对选择的项目采取行动:
Intent detailIntent = new Intent(this, ShowInstanceActivity.class);
detailIntent.putExtra(ShowInstanceFragment.ARG_ITEM_ID, id);
startActivity(detailIntent);
Run Code Online (Sandbox Code Playgroud)
一切正常,如果我使用软键"后退"按钮,那么ListInstancesActivity我会按照我的预期返回.但是,如果我按下操作栏上的后退/上移按钮,它会破坏并重新创建ListInstancesActivity.这很糟糕,因为这样做计算成本相对较高.
如何使操作栏的行为与软键相同,只返回上一个活动而不是销毁它.
应该注意的是,我正在使用动作栏的支持库版本.
我的相关部分AndroidManifest.xml是
<activity
android:name=".agenda.ListInstancesActivity"
android:label="@string/list_instances_activity_title">
</activity>
<activity
android:name=".agenda.ShowInstanceActivity"
android:label="@string/show_instance_activity_title"
android:parentActivityName=".agenda.ListInstancesActivity">
</activity>
Run Code Online (Sandbox Code Playgroud)
vik*_*ogs 97
在android manifest.xml中为父活动标签添加以下属性.
android:launchMode="singleTop"
Run Code Online (Sandbox Code Playgroud)
参考:http://developer.android.com/guide/topics/manifest/activity-element.html
请参阅类似的问题: 如何正确返回父活动?
Aas*_*hir 31
您可以覆盖操作栏按钮应该执行的操作:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)
并重新创建后退按钮效果.
| 归档时间: |
|
| 查看次数: |
13543 次 |
| 最近记录: |