Android Manifest实施问题

时间:2014-02-13 22:22:07

标签: android eclipse manifest splash

我从未完全理解清单或如何向其中添加项目。我的清单在这里有效,但我想改变一些东西而且我不知道要改变什么。这是清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.magicbuddy.gamble"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.magicbuddy.gamble.Splash"
        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.magicbuddy.gamble.welcomeSplash"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.magicbuddy.gamble.Dashboard" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.magicbuddy.gamble.Dashboard"
        android:label="@string/app_name" >
    </activity>
    <activity
        android:name="com.magicbuddy.gamble.MainActivity"
        android:label="@string/app_name" >
    </activity>
    <activity
        android:name="com.magicbuddy.gamble.Player"
        android:label="@string/app_name" >
    </activity>
    <activity
        android:name="com.magicbuddy.gamble.Menu"
        android:label="@string/app_name" >
    </activity>
    <activity
        android:name="com.magicbuddy.gamble.Popup"
        android:label="@string/title_activity_popup" >
    </activity>
</application>

</manifest>

我写了两个新课程。一个叫做Player.class,另一个叫做WelcomeSplash.class。目前,正如清单所示,我的启动画面加载和工作,然后启动画面上的计时器自动加载下一个屏幕,即dashboard.class。相反,我希望它加载我的一个新类,WelcomeSplash.class。我不知道如何将我的两个新类正确添加到清单中。

     startActivity(new Intent(Splash.this, welcomeSplash.class));

我用我的另一个类Dashboard替换了WelcomeSplash,它没有强制关闭,它加载并运行得很好。

3 个答案:

答案 0 :(得分:3)

根据您的代码,我进行更改并发布代码。在Manifest ..

中查看并使用
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.magicbuddy.gamble"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name="com.magicbuddy.gamble.Splash"
        android:label="@string/app_name" >

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

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



    <activity
        android:name=".gamble.Dashboard" >
    </activity>
    <activity
        android:name=".MainActivity" >
    </activity>
    <activity
        android:name=".Player" >
    </activity>
    <activity
        android:name=".Menu" >
    </activity>
    <activity
        android:name=".Popup" >
    </activity>
 <activity android:name=".WelcomeSplash" >
        </activity>

</application>

</manifest>

无需再次撰写<intent-filter>。谢谢你:))

答案 1 :(得分:1)

对于您创建的每个新活动,您需要将活动块添加到应用程序部分的清单中。

要添加新的WelcomeSplash类,请添加以下行:

<activity
            android:name="com.magicbuddy.gamble.WelcomeSplash"
            android:label="@string/app_name" >

之间的标签

<application></application>

一旦类在那里,你的splash类应该使用WelcomeSplash.class启动意图

答案 2 :(得分:1)

正如dgg所说,只需将活动添加到Manifest.xml

即可
    <application>
...
...
...
        <activity
            android:name="com.magicbuddy.gamble.Player"
            android:label="Player" >
        </activity>
        <activity
            android:name="com.magicbuddy.gamble.welcomeSplash"
            android:label="WelcomeSplash" >
        </activity>
    </application>

如果您在此处there is no activty to handle intent (com.XXXX.WelcomeSplash)有例外:

Intent openMainActivity = new Intent("com.magicbuddy.gamble.welcomeSplash");
startActivity(openMainActivity);

你必须使用:

Intent startMain = new Intent(this, welcomeSplash.class); 
startActivity(startMain);

详细了解: Android Build an Intent

以下是您的问题,您的班级的真实姓名是“WelcomeSplash”或“welcomeSplash”,请在您的Manifest.xml和{Intent中输入正确的名称1}}! :)

根据Java Standars,类名应该在CamelCase中,因此请使用“WelcomeSplash”。