تغییر Activity اصلی برنامه اندروید (تغییر اولین Activity که در شروع برنامه اندروید، نمایش داده می شود)
در این مبحث، چگونگی تغییر دادن Activity اصلی برنامه اندروید را شرح می دهیم. منظور از Activity اصلی، همان Activity است که با اجرای برنامه اندروید، به عنوان اولین Activity به کاربر نمایش داده می شود.
فرض کنید که پروژه اندرویدی ساخته ایم که دارای دو Activity با نام های MainActivity و SecondActivity می باشد :
اکنون فایل AndroidManifest.xml از پروژه اندروید را باز می کنیم :
کدهای فایل AndroidManifest.xml به صورت زیر می باشند :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kelidestan.com"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.kelidestan.com.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.kelidestan.com.SecondActivity"
android:label="@string/title_activity_second" >
</activity>
</application>
</manifest>
تگ (tag) با نام activity برای تعریف یک Activity به کار می رود و چون در پروژه اندروید، دو Activity داریم، بنابراین تگ activity نیز دو بار به کار رفته است :
android:name="com.kelidestan.com.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.kelidestan.com.SecondActivity"
android:label="@string/title_activity_second" >
</activity>
چون در Activity با نام MainActivity ، کدهای زیر به کار رفته است، بنابراین MainActivity همان Activity اصلی برنامه اندروید می باشد :
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
این کدها باعث می شوند که هنگام اجرای برنامه اندروید، MainActivity به عنوان Activity اصلی برنامه اندروید شناسایی شود. بنابراین چنانچه قصد داریم که Activity با نام SecondActivity به عنوان Activity اصلی برنامه اندروید در نظر گرفته شود، باید این کدها را از تگ activity مربوط به MainActivity برداشته و در تگ activity مربوط به SecondActivity قرار بدهیم یا روش راحتتر این است که نام های MainActivity و SecondActivity را با هم تعویض کنیم (اینگونه حجم تغییرات لازم، کمتر است و همچنین چون label برای MainActivity برابر @string/app_name تعیین شده است، دیگر نیازی به تغییر آن نیست، زیرا @string/app_name اشاره به نام برنامه اندروید دارد که در فایل strings.xml از پروژه اندروید تعریف شده و این نام را معمولا برای Activity اصلی برنامه اندروید به کار می برند).
بنابراین مثلا نام های MainActivity و SecondActivity را با هم تعویض می کنیم تا SecondActivity به Activity اصلی برنامه اندروید تبدیل شود (در صورت تمایل، شما می توانید یکی از مشخصه های label را هم تغییر بدهید) :
android:name="com.kelidestan.com.SecondActivity"
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.kelidestan.com.MainActivity"
android:label="@string/title_activity_second" >
</activity>
بنابراین کل کدهای فایل AndroidManifest.xml به صورت زیر خواهد بود :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kelidestan.com"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.kelidestan.com.SecondActivity"
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.kelidestan.com.MainActivity"
android:label="@string/title_activity_second" >
</activity>
</application>
</manifest>
پس از اعمال این تغییرات، با اجرای برنامه اندروید، SecondActivity به عنوان Activity اصلی برنامه اندروید، در شروع برنامه نمایش داده می شود.