后退按钮始终返回主活动

时间:2016-07-25 12:22:35

标签: java android android-activity

我有3项活动:

MapActivity ScheduleActivity ItemDetailActivity

MapActivity和ScheduleActivity可以启动ItemDetailActivity。 问题是,当我单击后退按钮时,它总是返回到MapActivity。我一直在这个论坛上搜索,很多人回答“覆盖onBackPressed并启动意图”。 我尝试了很多东西,比如:覆盖onBackPressed并使用 如果要检测活动的ID。 清单中的ItemDetailActivity没有父属性。

<activity
        android:name=".MapActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".ScheduleActivity"
        android:label="@string/title_activity_agenda"
        android:theme="@style/AppTheme.NoActionBar" />

    <activity
        android:name=".ItemDetailActivity"
        android:label="@string/title_item_detail"
        android:theme="@style/AppTheme.NoActionBar" />

我在OnBackPressed事件中尝试过NavUtils,startActivity,但它确实不起作用。

从MapActivity打开ItemDetail的代码。

mClusterManager.setOnClusterItemInfoWindowClickListener(new ClusterManager.OnClusterItemInfoWindowClickListener<MyItem>() {
            @Override
            public void onClusterItemInfoWindowClick(MyItem myItem) {

                Intent intent = new Intent(MapActivity.this, ItemDetailActivity.class);

                intent.putExtra("instalattion", myItem.getInstalattion());
                intent.putExtra("activity", "MapActivity");

                startActivity(intent);

            }
        });

rv.addOnItemTouchListener(
                new RecyclerClickListener(this, new RecyclerClickListener.OnItemClickListener() {
                    @Override
                    public void onItemClick(View view, int position) {

                     //whatever code

                        Intent intent = new Intent(ScheduleActivity.this, ItemDetailActivity.class);

                        intent.putExtra("instalattion", installationTO);
                        intent.putExtra("activity", "ScheduleActivity");

                        startActivity(intent);

                    }
                }));
    }

1 个答案:

答案 0 :(得分:0)

在你的清单中:

  <activity
    android:name=".ItemDetailActivity"
    android:label="@string/title_item_detail"
    android:theme="@style/AppTheme.NoActionBar" >
    <!-- SET YOUR PARENT ACTIVITY -->
    <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".ScheduleActivity" />
  </activity>

因此,将ItemDetailActivity的父活动设置为ScheduleActivity,然后返回父活动。