AndroidManifest.xml裡加入多個package

下面以一問一答的形式來解決這個問題:
 
一般新建一個Android項目後,AndroidManifest.xml的內容都是這樣的:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.myactivities"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".ActivityMain"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
可以看到manifest的一個屬性package="com.myactivities",以後自己新建的多個activity都必須放在com.myactivities這個包裡面。問題是現在我如果另外新建一個包,在裡面新建幾個activity類文件,這幾個activity如何在AndroidManifest.xml裡註冊呢?我最後想達到的目的是com.myactivities裡面的activity通過intent跳轉到新建的包裡面的某個activity,這個怎麼實現呢?
———————————————————————
每一個Activity、Service等應用程序組件都會對應AndroidManifest.xml文件中的一個<activity>、<service>標簽。在這些標簽中有一個必選的屬性:android:name,該屬性需要指定一個類名,例如,net.blogjava.mobile.Main類。指定android:name屬性值有如下3種方式: www.aiwalls.com
1.  指定完全的類名(packagename+classname),例如,net.blogjava.mobile.Main。
2.  隻指定類名,例如,.Main,其中Main前面的“.”是可選的。該類所在的包名需要在<manifest>標簽的package屬性中指定。
3.  指定相對類名,這種方式類似於第2種方式,隻是在<activity>標簽的android:name屬性中不光指定類名,還有部分包名。例如,如果Main類在net.blogjava.mobile.abcd包中,就可以在<manifest>標簽的package屬性中指定net.blogjava.mobile,然後在<activity>標簽的android:name屬性中指定.abcd.Main。
        由此可見,package的目的是為瞭更方便地指定android:name以及其他相關屬性的值,就是一個默認的包。如果不在android:name中指定包名,會自動將package屬性值加在前面。

 作者:berber78

發佈留言