Android返回导航ParentActivityName无法正常工作

时间:2016-10-02 17:16:11

标签: android

我尝试使用本教程如何提供如此代码中的后退导航

https://developer.android.com/training/implementing-navigation/temporal.html

 <activity android:name=".controller.general.AccountPickerScreen"
              android:parentActivityName="ph.edu.upm.agila.extendthelife.controller.general.LogInScreen">
        <intent-filter>
            <action android:name="ph.edu.upm.agila.extendthelife.controller.general.AccountPickerScreen" />

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

我已经指定了parentActivityName,但每当我按下后退按钮时,应用就会退出?任何解决方案?

尝试了这个

public void onBackPressed() {
     Intent intent = NavUtils.getParentActivityIntent(AccountPickerScreen.this);
    startActivity(intent);
    finish();
}

它确实有效但我想知道它是否是正确的方法呢? finish()完全做什么

4 个答案:

答案 0 :(得分:2)

您可能需要覆盖活动的onBack并使用NavUtils通过以下行来完成您想要的操作:

Intent intent = NavUtils.getParentActivityIntent(AccountPickerScreen.this);

答案 1 :(得分:0)

api级别低于16,尝试添加

<meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="fully qualified path to Activity Class Name" />

在androidmanifest.xml中的activity标签

答案 2 :(得分:0)

<activity android:name=".controller.general.AccountPickerScreen">
<intent-filter>
    <action android:name="ph.edu.upm.agila.extendthelife.controller.general.AccountPickerScreen" />

    <category android:name="android.intent.category.DEFAULT" />
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="ph.edu.upm.agila.extendthelife.controller.general.LogInScreen" />
</intent-filter>
</activity>

用`

覆盖onBackPressed
    NavUtils.navigateUpFromSameTask(this);`

答案 3 :(得分:0)

我遇到了一个问题,即父按钮可以处理某些活动而不是其他活动。

问题是我的onOptionsItemSelected函数。默认情况下它返回true,阻止了呼叫完成。你应该调用super.onOptionsItemSelected(item)。

请参阅https://developer.android.com/guide/topics/ui/menus.html