آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

تغییر Activity اصلی برنامه اندروید (تغییر اولین Activity که در شروع برنامه اندروید، نمایش داده می شود)

در این مبحث، چگونگی تغییر دادن Activity اصلی برنامه اندروید را شرح می دهیم. منظور از Activity اصلی، همان Activity است که با اجرای برنامه اندروید، به عنوان اولین Activity به کاربر نمایش داده می شود.

فرض کنید که پروژه اندرویدی ساخته ایم که دارای دو Activity با نام های MainActivity و SecondActivity می باشد :

تغییر Activity اصلی برنامه اندروید (تغییر اولین Activity که در شروع برنامه اندروید، نمایش داده می شود)

اکنون فایل AndroidManifest.xml از پروژه اندروید را باز می کنیم :

تغییر Activity اصلی برنامه اندروید (تغییر اولین Activity که در شروع برنامه اندروید، نمایش داده می شود)

کدهای فایل AndroidManifest.xml به صورت زیر می باشند :


<?xml version="1.0" encoding="utf-8"?>
<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 نیز دو بار به کار رفته است :


<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 اصلی برنامه اندروید می باشد :


<intent-filter>
    <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 را هم تغییر بدهید) :


<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>

بنابراین کل کدهای فایل AndroidManifest.xml به صورت زیر خواهد بود :


<?xml version="1.0" encoding="utf-8"?>
<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 اصلی برنامه اندروید، در شروع برنامه نمایش داده می شود.

نویسنده علیرضا گلمکانی
شماره کلید 2726
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 0 0 0

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)