gpt4 book ai didi

android - 无法导航至主要 Activity

转载 作者:行者123 更新时间:2023-11-30 01:29:06 24 4
gpt4 key购买 nike

我的应用程序中有 3 个 Activity (A -主要 Activity -、B 和 C)。我可以从 Activity A 导航到 B,然后从 B 导航到 Activity C。

当按下后退按钮(或单击向上导航按钮)时,当前 Activity 结束并启动父 Activity (A 是 B 父级,B 是 C 父级):

    <activity
android:name=".A"
android:label="@string/app_name"
android:noHistory="true"
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=".B"
android:label="@string/title_b"
android:noHistory="true"
android:parentActivityName=".A"
android:theme="@style/AppTheme.NoActionBar">

<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.sim.muii.camarerocamarero.A" />
</activity>
<activity
android:name=".C"
android:label="@string/title_c"
android:noHistory="true"
android:parentActivityName=".B">

<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.sim.muii.camarerocamarero.B" />
</activity>

如果我从 A 向下导航到 B,然后返回到 A(通过向上导航),它会正常工作。但是,如果我从 A 转到 B,然后从 B 转到 C,它允许我返回 B,但是当我尝试从 B 返回到 A 时,应用程序关闭。

这是用于导航到父 Activity 的函数:

@Override
public void onBackPressed() {
Intent intent = NavUtils.getParentActivityIntent(this);
NavUtils.navigateUpTo(this,intent);
}

由于我的应用程序支持旧版本的 Android,我已经在多个设备上对其进行了测试,它可以在 GingerBread 上正常运行,但不能在 Lollipop 上运行。我猜问题可能来自新版本中的某些功能更改。

最佳答案

首先不要使用<meta-data>用于导航目的的 list 文件中的标记。而是使用明确的 Intent ,因为你知道目标 Activity

试试这个-

从 A 到 B

在 Activity A 中 - 在按钮点击时使用以下代码

Intent intentAtoB = new Intent (A.this,B.class);
startActivity(intentAtoB);
finish();

从 B 到 C

1) 在 Activity B 中 - 在按钮点击时使用以下代码

Intent intentBtoC = new Intent (B.this,C.class);
startActivity(intentBtoC);
finish();

2) 在 Activity B 中 - 只需覆盖 onBackPressed()

@Override
public void onBackPressed() {
Intent intent = new Intent (B.this,A.class);
startActivity(intent);
finish();
}

从 C 到 B

在 Activity C 中 - 只需覆盖 onBackPressed()

@Override
public void onBackPressed() {
Intent intent = new Intent (C.this,B.class);
startActivity(intent);
finish();
}

希望这会有所帮助:)

关于android - 无法导航至主要 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36007565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com