我已经实现并运行了返回箭头,但不是只完成活动B并返回到用户在活动A中的上一个视图(片段)。相反,它关闭activity B并重新加载activity a,这意味着您必须返回几个菜单才能回到原来的位置。
物理后退箭头的作用正如我所希望的那样,它只是关闭activtyB,并将用户放回他们移动到activtyB之前在activtyA中的原始位置。
这是我当前的工具栏反向箭头代码,但可能我只是没有完全理解物理反向箭头是如何工作的。我感谢所有的建议!
toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
对于每个活动,您都必须在Android清单文件中添加父活动。
<activity
android:name="com.example.myfirstapp.ActivityC"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
<!-- The meta-data element is needed for versions lower than 4.1 -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
</activity>
如果将MainActivity指定为ActivityC的父级,则它将转到MainActivity。如果您指定了ActivityB,单击ActionBar中的后退按钮,它将移动到ActivityB。
有关更多信息,请参阅此处
您需要覆盖活动的onOptionsItemSelected方法:
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
if (menuItem.getItemId() == android.R.id.home) {
onBackPressed();
} else {
super.onOptionsItemSelected(menuItem);
}
return true;
}