活动的“向上”按钮导航到其他活动

时间:2018-10-28 21:11:48

标签: android android-activity android-toolbar android-navigation up-button

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

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

我需要这个“向上”按钮来定向用户所来自的活动(与Android“后退”按钮的行为相同)。

相反,由于AndroidManifest.xml中的以下代码,即使用户不是立即从那里来,它也总是直接返回到Home活动:

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

如何覆盖此行为,以便MyActivity的“向上”按钮使用户返回到他来自的活动,而不总是回到“主页”活动?

3 个答案:

答案 0 :(得分:1)

首先,用此代码替换您的代码。

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

第二,在“ MyActivity”类中添加一些代码。

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);
    }

希望它能起作用!

答案 1 :(得分:0)

如果您不想参加家庭活动,只需删除声明父活动的元数据即可。

<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();
    }
});

答案 2 :(得分:-1)

替换为:

 <activity
        android:name=".MyActivity"

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