Activity 的向上按钮导航到不同的活动

Activity's Up button to navigate to different activities

我有一个 activity MyActivity,其工具栏中实现了标准向上按钮(屏幕左上角的向左箭头)。

这个 activity 的独特之处在于用户可以从我的应用程序中的多个活动导航到它。

我需要这个向上按钮指向用户来自的 activity(与 Android 后退按钮相同的行为)。

相反,它总是直接返回主页 activity,即使用户没有立即从那里返回,因为 AndroidManifest.xml 中的代码:

<activity
    android:name="com.myapp.activity.MyActivity"
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.myapp.activity.Home"
/>

如何覆盖此行为,以便 MyActivity 的向上按钮 returns 用户转到他来自的 activity 而不是总是主页 activity ?

替换为:

 <activity
        android:name=".MyActivity"

        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
 </activity>

如果您不想回家,只需删除 meta-data 声明 parent activity activity。

<activity android:name="com.myapp.activity.MyActivity" />

或者您可以使用工具栏的 onNavigationClick 定义您自己的后退操作:

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //if you want to go one activity back then put onBackPressed() method
        onBackPressed();
    }
});

首先,用这个替换你的代码。

<activity
        android:name=".MyActivity">
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
 </activity>

其次,将一些代码添加到您的 "MyActivity" class。

1. 在 onCreate() 方法中,添加该行。

getActionBar().setDisplayHomeAsUpEnable(true);

2。实现onOptionItemSelected(),添加几行。

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

希望有用!