-1

我刚刚创建了我的第一个 Android 应用程序,一切正常,但所有活动都显示在我的 Android 菜单上。我做错什么了?

截图:imgur.com/9CmXU 我想要一个图标,指向 MainActivity,而不是所有活动

    <!-- language-all: lang-html -->
     <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myApps.birthdaymeter"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <application
        android:icon="@drawable/my_logo"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".BirthdayMeter"
            android:label="@string/title_activity_birthday_meter" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".AboutWindow"
            android:label="@string/title_activity_about_window" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ShowResult"
            android:label="@string/title_activity_show_result" >
            <intent-filter>


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

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

</manifest>

这是我的清单,更改徽标没有帮助

4

3 回答 3

1

<intent-filter>标签用于描述每个 Activity 将响应的 Intent 类型。该"android.intent.action.MAIN"操作表示此 Activity 是您的应用程序的入口点(想想 java 程序所需的主要方法)。该"android.intent.category.LAUNCHER"类别告诉操作系统在您的应用程序列表中显示活动。添加DEFAULT类别是可以的,但实际上与完全省略<intent-filter>标签相同(我发现这可以使代码更清晰、更容易阅读)。您应该只在<intent-filter>用户打开您的应用程序时启动的 Activity 上使用带有这两个操作和类别的标签。如果希望您的应用程序中的 Activity 能够响应某些特殊意图,您将使用标签来定义它响应的内容。

这是 google 开发页面的链接,可帮助您了解有关 Intent 过滤器的更多信息。

http://developer.android.com/guide/components/intents-filters.html

这是<intent-filter>标签的文档。虽然这不是最容易理解的。

http://developer.android.com/guide/topics/manifest/intent-filter-element.html

这是 Manifest 文件和 Intent 类的文档。如果您不确定要在 Manifest 中使用哪些标签,这两个都可以作为参考。祝你好运!

http://developer.android.com/guide/topics/manifest/manifest-intro.html

http://developer.android.com/reference/android/content/Intent.html

于 2012-08-10T18:54:20.420 回答
0

你的问题非常笼统,所以我不知道该回答什么。nameOfActivity.this.finish()当您启动另一个活动时,您似乎还没有打电话

于 2012-08-10T16:46:52.400 回答
0

如果您发布清单文件,我可以提供更多帮助,但在我看来,您没有正确声明您的活动。

它应该设置得有点像这样:

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name="Activity1"></activity>
    <activity android:name="Activity2"></activity>
    <activity android:name="Activity3"></activity>
</application>

本质上,创建一个应用程序声明,然后在其中包含每个活动。

于 2012-08-10T17:13:36.663 回答