1

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

这个活动是独一无二的,因为用户可以从我的应用程序中的多个活动导航到它。

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

相反,它总是指向 Home 活动,即使用户没有立即从那里回来,因为以下代码AndroidManifest.xml

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

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

4

3 回答 3

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

希望它有效!

于 2018-10-30T10:15:25.210 回答
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();
    }
});
于 2018-10-28T21:50:46.267 回答
-1

替换为:

 <activity
        android:name=".MyActivity"

        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
 </activity>
于 2018-10-28T21:31:49.767 回答