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

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

در برنامه eclipse ، ابتدا یک پروژه اندروید با نام Kelidestan بسازید (نام package را برابر com.example.kelidestan انتخاب کنید. نام activity اصلی را برابر Activity1 انتخاب کنید).

پس از ساخت پروژه اندروید، فولدربندی آن در سمت چپ پنجره برنامه eclipse ، به صورت زیر نمایش داده می شود :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

سه فایل مهم را در فولدربندی پروژه اندروید مشخص کردیم. به ترتیب، کدهای آنها را بررسی کرده و نقش هر کدام را شرح می دهیم.

فایل Activity1.java ، فایل مربوط به Activity اصلی پروژه اندروید است. اگر بر روی آن، با موس، دابل کلیک (دو بار کلیک) کنیم، کدهای مربوط به آن در پنجره برنامه eclipse نمایش داده می شود :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

بنابراین برای فایل Activity1.java ، کدهای زیر را داریم :


package com.example.kelidestan;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class Activity1 extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_activity1);
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.activity1, menu);
                return true;
        }

}

خوب اکنون بخش های مهم کدها را شرح می دهیم. ابتدا خط اول :


package com.example.kelidestan;

نام package تعریف شده برای پروژه اندروید می باشد.

بقیه کدها :


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

شاید در مقایسه با عکسی که نشان دادیم، بگویید که چرا یک خطی که با کلمه import شروع شده است، در اینجا تبدیل به سه خط شده. پاسخ این است که اگر در آن عکس دقت کنید، در کنار کلمه import ، یک علامت مثبت وجود دارد که با کلیک بر روی آن، دو خط دیگر که پنهان شده اند، نمایش داده می شوند.

در این سه خط از کدها، package های توسعه داده شده برای برنامه نویسی اندروید را وارد کرده ایم. در واقع چون از زبان java به عنوان زبان پایه استفاده شده است بنابراین یک سری package با زبان java برای برنامه نویسی اندروید نوشته شده است که ما در برنامه نویسی اندروید باید از آنها استفاده کنیم.


public class Activity1 extends Activity {

کلاس Activity1 که قبلا نام آن را تعیین کرده ایم را بر اساس توسعه دادن کلاس Activity می سازیم (کدهای آن را شروع می کنیم). در واقع کلاس Activity قبلا در package هایی که import کردیم، وجود دارد و ما کلاس های مورد نیاز خود را بر اساس توسعه آن، می سازیم. کدهای کلاس Activity1 که داریم آن را درون فایل Activity1.java تعریف می کنیم، در میان علامت شروع } و علامت پایانی { نوشته می شوند.


@Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_activity1);
        }

در کدهای بالا، به این بخش توجه کنید :


setContentView(R.layout.activity_activity1);

در کد بالا، اگر به درون پرانتز نگاه کنید، متوجه می شوید که یک مسیر تعریف شده است. ابتدا R نوشته شده که اشاره به فولدر منابع (Resource) دارد. این فولدر، با نام res در فولدربندی پروژه اندروید نمایش داده شده است. نام بعدی، layout می باشد که یک زیرشاخه برای فولدر res است. و در آخر نیز، نام activity_activity1 نوشته شده که نام فایل xml متناظر برای Activity1 می باشد. بنابراین مسیری به صورت زیر مشخص شده است :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

بنابراین در فایل Activity1.java که در واقع داریم در آن یک activity با نام Activity1 می سازیم، به فایل activity_activity1.xml ارجاع داده ایم که فایل xml متناظر برای Activity1 خواهد بود. شکل زیر را ببینید :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

بنابراین درون دستور setContentView ، به فایل xml متناظر activity ارجاع داده ایم. دستور setContentView باعث می شود که محتویات تعریف شده در فایل xml ، در صفحه مربوط به آن activity نمایش داده شود. یعنی اینکه محتویاتی که می خواهیم در صفحه مربوط به Activity1 نمایش داده شود را در فایل activity_activity1.xml تعریف می کنیم و سپس در فایل Activity1.java به این فایل xml ارجاع می دهیم.

خوب حالا می خواهیم نگاهی به کدهای فایل activity_activity1.xml بیندازیم. با دابل کلیک بر روی نام این فایل، صفحه ای به شکل زیر نمایش داده می شود :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

همان طور که مشاهده می کنید، فایل activity_activity1.xml به صورت گرافیکی نمایش داده شده است. این نوع نمایش به ما کمک می کند تا به طور واضح ببینیم که فایل xml متناظر با هر activity ، صفحه متناظر با activity را به چه شکل می سازد (به کاربر نمایش می دهد). علاوه بر این، می توانیم که فایل activity_activity1.xml را به صورت کد نیز ببینیم، در شکل بالا، دو گزینه را با کادر قرمز نمایش داده ایم، بخش مربوط به آنها را بزرگتر نشان می دهیم :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

همان طور که می بینید، دو نوع نمایش برای فایل xml وجود دارد که در شکل فوق، نوع Graphical Layout انتخاب شده است که باعث می شود فایل xml را به صورت گرافیکی مشاهده کنیم. حال اگر بر روی گزینه activity_activity1.xml کلیک کنیم، کدهای مربوط به این فایل xml نمایش داده خواهد شد :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

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


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".Activity1" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

فعلا تنها بخش زیر را توضیح می دهیم :


<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

این کد باعث نمایش یک TextView در صفحه مربوط به activity می شود. TextView ، یک متن است که به کاربر نمایش داده می شود. کافی است که نگاهی به فایل activity_activity1.xml به صورت گرافیکی بیندازیم تا متن متناظر با آن را ببینیم :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

مشاهده می کنید که عبارت Hello world! به صورت یک TextView ، نمایش داده شده است. دقت کنید که نمایش گرافیکی فایل xml را برای واضح تر دیده شدن، با کلیک کردن بر روی دکمه به شکل زیر، بزرگتر نمایش داده ایم :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

به عبارت زیر در کدهایی که نمایش دادیم، دقت کنید :


android:text="@string/hello_world" />

این عبارت، مشخص کرده است که رشته ای (string) با نام hello_world در TextView نمایش داده شود. اما سوال این است که این رشته (string) با نام hello_world ، در کجا ذخیره شده است. برای یافتن پاسخ، شکل زیر را ببینید :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

فایلی با نام strings.xml را با کادر قرمز و فلش، مشخص کرده ایم. برای یافتن این فایل، باید به فولدر منابع با نام res و سپس فولدر values برویم. بر روی فایل strings.xml ، با موس دابل کلیک (دو بار کلیک) می کنیم تا محتویات آن نمایش داده شود :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

همان طور که مشاهده می کنید، این فایل xml نیز دارای دو نوع نمایش به صورت گرافیکی و به صورت کد می باشد که آن دو را با کادر قرمز رنگ در تصویر بالا، مشخص کرده ایم. در نمایش گرافیکی (گزینه resources) اگر بر روی نام رشته hello_world کلیک کنیم، مقادیر آن به صورت زیر نمایش داده می شود :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

در قسمت Name ، نام رشته و در قسمت Value ، مقدار رشته (کاراکترهای به کار رفته در رشته) نوشته شده است.

اکنون بر روی گزینه strings.xml کلیک می کنیم تا کدهای این فایل xml نمایش داده شود (نمایش فایل به صورت کد) :

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

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


<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Kelidestan</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>

</resources>

به این بخش از کدها توجه کنید :


<string name="hello_world">Hello world!</string>

مشاهده می کنید که در این بخش از کدها، رشته hello_world و مقدار متناظر با آن، تعریف شده است.

کدهای فایل AndroidManifest.xml :

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

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

همان طور که در شکل بالا، با فلش های قرمز نشان داده ایم، اطلاعات مربوط به این فایل xml ، در 4 صفحه به صورت گرافیکی نمایش داده شده است که اگر بر روی گزینه هر کدام از آن 4 تا کلیک کنید، یک سری تنظیمات نمایش داده می شود که می توانید آنها را تغییر دهید. در کل، فایل AndroidManifest.xml ، یک سری اطلاعات کلی در مورد برنامه اندروید (پروژه اندروید) ساخته شده، ارائه می دهد.

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

آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml

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


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.kelidestan"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.kelidestan.Activity1"
            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>

با دیدن کدها، یک سری تنظیمات کلی برای برنامه اندروید ساخته شده، قابل تشخیص می باشد. اجازه بدهید بخشی از کدها را که مربوط به activity ها است، بررسی کنیم :


<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.kelidestan.Activity1"
            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>

درون زوج تگ application ، تگی با نام activity وجود دارد که همان activity اصلی برنامه اندروید ساخته شده می باشد. به این بخش از کدهای نوشته شده درون زوج تگ activity ، دقت کنید :


android:name="com.example.kelidestan.Activity1"

مشاهده می کنید که نام activity ، برابر com.example.kelidestan.Activity1 ذکر شده است، اما نام activity را ما قبلا برابر Activity1 انتخاب کردیم، پس چرا این نام ذکر شده. نکته مهم این است که برای ذکر نام activity ، قبل از آن، نام package ذکر می شود که ما قبلا نام package را برابر com.example.kelidestan انتخاب کرده بودیم. بنابراین در اینجا، برای اشاره به activity اصلی برنامه اندروید ساخته شده، نام com.example.kelidestan.Activity1 ذکر می شود.

چنانچه تعدادی activity دیگر در برنامه اندروید خود بسازیم، باید حتما به فایل AndroidManifest.xml آمده و پس از تگ پایانی </activity> ، آن activity ها را ذکر کنیم، وگرنه برنامه اندروید ساخته شده، به درستی عمل نمی کند.

  • فهرست مباحث
نویسنده علیرضا گلمکانی
شماره کلید 214
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 1 1 0
ابراهیم
۱۳۹۵/۰۹/۰۷
۱۴:۴۹

سلام واقعا خسته نباشید
خیلی اموزش های خوبی دارید
یه جورایی مثل فیلم اموزش با ادم حرف میزنه خخخخ
موفق و پیروز باشید

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