【问题标题】:How to add Activity to manifest.xml in right way?如何以正确的方式将 Activity 添加到 manifest.xml?
【发布时间】:2014-01-01 15:37:09
【问题描述】:

我应该在 android manifest 中编写每个活动吗?如何编写?每个活动都必须有意图过滤器吗?

【问题讨论】:

    标签: android android-activity android-manifest


    【解决方案1】:

    在 Manifest 文件中添加活动的多种方式。

    意图过滤器不是所有活动的必要标签,它是可选的。

    在清单中的应用程序标签中添加 Activity:

     <!-- Main Activity-->
        <activity android:name=".YourActivityName" >
            <intent-filter>
          <!-- MAIN represents that it is the Main Activity-->
                <action android:name="android.intent.action.MAIN" />
          <!-- Launcher Denotes that it will be the first launching activity-->
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
     <!--Add Other activities like this-->
        <activity android:name=".YourActivityName2" >
     <!--Default Intent Filter-->
            <intent-filter>
                <action android:name="android.intent.action.DEFAULT" />
            </intent-filter>
        </activity>
     <!--OR Other activities like this And  intent filter is not necessary in other activites-->
        <activity android:name=".YourActivityName3" >
        </activity>
     <!--OR Add Other activities like this-->
        <activity android:name=".YourActivityName4" />
    

    【讨论】:

    • 嘿,为这个答案喝彩。我在 中复制了它并没有用。但随后复制到 中,它工作正常。我不知道是有什么变化还是我做错了。只是想我会让你知道。
    • 是否需要加'.'在活动名称之前, ?
    【解决方案2】:

    必须在

    中提及活动
    <activity>
        ...
    </activity> 
    

    标签。每个活动标签都必须在

    内指定
    <application>
        ...
    </application> 
    

    标签。

    默认activity需要有一个

    <intent-filter>
        ...
    </intent-filter>
    

    标签,它会让安卓系统明白这个活动将在应用启动时被调用。

    A 可以包含多个属性,但只有 name 属性是必需的。

    以下是完整列表:https://developer.android.com/guide/topics/manifest/activity-element

    默认活动标签:

    <activity
            android:name=".LoginActivity"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    

    其他活动标签:

        <activity
            android:name=".SelectSubjectActivity"
            android:windowSoftInputMode="adjustResize" />
    

    【讨论】:

      【解决方案3】:

      您必须在 android manifest 中提及每个活动。

      并非所有活动都需要意图过滤器。 意图过滤器显示何时启动此活动。 通常你会有一个带有意图过滤器的活动,它表明它是应用程序启动时的第一个活动。

      清单中的应用程序标签内:

              <activity android:name="ActivtyName" >
              </activity>
              <activity android:name="ActivtyName2" >
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
      
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>
      

      【讨论】:

        【解决方案4】:

        只需要android:name="ActivtyName"

        【讨论】:

          【解决方案5】:

          如果您使用的是 Eclipse ADT,则在创建新 Activity 而不是创建类时,从 New > Others 创建一个 Activity...这样 ADT 会自动将您的 Activity 添加到 Manifest。

          【讨论】:

            【解决方案6】:

            我实现了“Android 开发者基础课程”。我发现添加带有嵌套元素和不带有嵌套元素的活动时存在细微差别。

            默认活动是这样定义的:

            <activity
                android:name=""
                android:label=""/>
            

            当您添加带有结束标签的活动时(因为有嵌套元素),您需要将名称属性移动到开始标签:

            <activity android:name="">
                android:label=""/>
            
                <meta-data/>
            
            </activity>
            

            开启https://developer.android.com/guide/topics/manifest/manifest-intro

            我们可以发现name属性是强制性的:

            您的子类的名称必须用 name 属性指定, 使用完整的包装名称。

            【讨论】:

              【解决方案7】:

              您必须在清单中为每个活动编写条目,并且不需要无意图过滤器。你可以简单地写这个:

               <activity
                          android:name="com.example.chatter.List"
                          android:label="@string/title_activity_list" >
                      </activity>
              

              【讨论】:

              • 我应该在哪里使用意图过滤器?
              • 当您说此活动仅适用于特定类型的意图时,因此您将它们过滤掉。
              猜你喜欢
              • 2020-09-01
              • 1970-01-01
              • 2011-12-20
              • 1970-01-01
              • 2020-05-09
              • 2015-09-23
              • 2014-01-19
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多