如何更改活动层次结构?

时间:2013-02-06 20:03:48

标签: android eclipse android-activity

我建立了一个包含许多活动的项目。每当我创建新活动时,我都会设置层次结构父级。但我决定用动画做一个活动,这应该是第一个。我试图更改清单文件中的一些信息,并将新的活动设置为启动活动,但我做错了,所有项目都崩溃了。 Ofc,我将继续尝试更改清单文件,但也许我可以使用Eclipse工具以更简单的方式做到这一点?

- EDIT-- 我解决了我的问题,这是一个很小的错误。我只是设置错误的布局而忘记改变一件事。我不是这个主题的专家,但也许对于其他读者我会在这里提供一些信息,如何使用清单文件更改层次结构。如果我在这里犯了任何错误,请随时编辑。

好的,我们假设我们的项目有一些活动。在Manifest文件中我们可以找到一些有关活动的信息,这些信息在标记之间:。所以,它可能看起来像:

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.mastermind.StartGameActivity"
            android:label="@string/title_activity_start_game"
            android:parentActivityName="com.example.mastermind.MainActivity" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.example.mastermind.MainActivity" />
        </activity>
<activity
            android:name="com.example.mastermind.NewActivity"
            android:label="@string/title_new_activity" >
        </activity>

现在我们要更改MainActivity,这是第一个,并设置为第一个NewActivity。我们只需要更改包含标记的活动名称:

<intent-filter>
                    <action android:name="android.intent.action.MAIN" />

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

获取NewActivity的名称并设置它的布局,如下所示:

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.mastermind.StartGameActivity"
            android:label="@string/title_activity_start_game"
            android:parentActivityName="com.example.mastermind.MainActivity" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.example.mastermind.MainActivity" />
        </activity>
<activity
            android:name="com.example.mastermind.MainActivity"
            android:label="@string/app_name" >
        </activity>

那应该没关系。

1 个答案:

答案 0 :(得分:1)

在清单文件中找到category.LAUNCHER

    <activity
        android:name="com.example.StartActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" /><!-- This -->
        </intent-filter>
    </activity>
    <activity
        android:name="com.example.MainActivity"
        android:label="@string/app_name" >
    </activity>

category.LAUNCHER宣布您的发布Activity