gpt4 book ai didi

android - 在不处理向上按钮事件的情况下导航回 ActionBar 中的父 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:53:21 25 4
gpt4 key购买 nike

我有两个 Activity 需要此导航发生,它们是 VendorsActivity 和 QuestionsActivity。以下是我的 AndroidManifest.xml 的样子:

(我没有使用像 com.hello.world.MyActivity 这样的 Activity 的全名,因为我在 manifest 中定义了 package 属性> 节点。)

<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".VendorsActivity"
android:label="@string/vendors_activity_title" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".TestsActivity"
android:label="@string/tests_activity_title"
android:parentActivityName=".VendorsActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".VendorsActivity" />
</activity>
<activity
android:name=".QuestionsActivity"
android:label="@string/questions_activity_title" >
</activity>
</application>

TestsActivity 中,我从 onCreate 方法中调用 getActionBar().setDisplayHomeAsUpEnabled(true); 方法。

问题是,除非我在 .TestsActivity 类中实现以下方法,否则它不会工作:

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case android.R.id.home:
NavUtils.navigateUpFromSameTask(TestsActivity.this);
return true;
default:
return super.onOptionsItemSelected(item);
}
}

但 Android 开发人员指南说我不必处理点击页面底部提到的向上按钮事件:https://developer.android.com/training/basics/actionbar/adding-buttons.html

Because the system now knows MainActivity is the parent activity for DisplayMessageActivity, when the user presses the Up button, the system navigates to the parent activity as appropriate—you do not need to handle the Up button's event.

编辑和回答:

正如 Android 开发者指南所说:

Beginning in Android 4.1 (API level 16), you can declare the logical parent of each activity by specifying the android:parentActivityName attribute in the element.

If your app supports Android 4.0 and lower, include the Support Library with your app and add a element inside the . Then specify the parent activity as the value for android.support.PARENT_ACTIVITY, matching the android:parentActivityName attribute.

所以我认为我的问题有两个原因:

  1. 在合适的模拟器上运行应用。我的目标是更高版本,但模拟器在 API 14 (Android 4.0) 上运行,因此它不知道如何处理 android:parentActivityName 属性。

  2. 在 Project Build Target 属性中设定正确的 API 级别,如下所示:

enter image description here

最佳答案

如果您收到类似于

的错误
E/NavUtils﹕ getParentActivityIntent: bad parentActivityName

does not have a parent activity name specified. (Did you forget to add the android.support.PARENT_ACTIVITY <meta-data>  element in your manifest?)

您可能需要将 android:value 更改为完整路径。所以不是

 <meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />

 <meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.package.SecondActivity" />

关于android - 在不处理向上按钮事件的情况下导航回 ActionBar 中的父 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20303657/

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