Android:我似乎无法让我的自定义工具栏的后退箭头像设备的物理后退箭头一样工作



我已经实现并运行了返回箭头,但不是只完成活动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;
}

最新更新