آموزش برنامه نویسی اندروید با اندروید استودیو (بخش چهل و هشتم: ساخت اکتیویتی جدید و رفتن به آن با استفاده از Intent )

استاندارد

در این بخش از آموزش برنامه نویسی اندروید می خواهیم کار با اینتنت ها (Intent) و گذر بین اکتیویتی ها را آموزش بدهیم.

این بخش را با استفاده از رفتن از یک اکتیویتی به اکتیویتی دیگر با استفاده از Intent ، آموزش خواهیم داد.

اینتنت ها بسیار مفید و کاربردی هستند و آموزش های آینده از اینتنت ها استفاده های بسیاری خواهیم نمود.

اینتنت ها وظیفه دارند اطلاعاتی را از مبدا گرفته و به مقصد ارسال نمایند. این اطلاعات می توانند در قالب پیام و یا یک رویداد باشند.

در این مراحل با Intent های بسیار پرکاربرد آشنا خواهیم شد.

پس از معرفی توضیحاتی در رابطه با Intentها کار را شروع می کنیم.

من یک پروژه به نام Intent-Gsm در اندروید استودیو ایجاد می کنم. سپس به قسمت لایه اپلیکیشن برنامه می روم و یک دکمه Button را به لایه می کشم.

این دکمه وظیفه ی این را خواهد داشت که با کلیک به اکتیویتی دوم برود.

کدهای Layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    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="com.gsm_developers.intent_gsm.MainActivity">

    <Button
        android:text="Button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="181dp"
        android:id="@+id/button"
        android:elevation="0dp" />
</RelativeLayout>

پس از اضافه کردن دکمه ، باید یک Activity جدید به پروژه اضافه نماییم.

برای این کار از منوی فایل New را زده و به قسمت Activity می رویم. سپس Empty Activity را انتخاب می کنیم.

در پنجره باز شده، نام اکتیویتی جدید را از شما می خواهد.

ما نام هایی که خود اندورید استودیو به صورت پیش فرض انتخاب کرده است را به همان صورت می گذاریم.

ولی این نام ها چیست؟

در قسمت اول (Activity Name) نام همان فایلی را می خواهد که در مسیر Java وجود دارد. یعنی همان قسمتی که برای برنامه نویسی جاوا به کار می رود.

در قسمت دوم (Layout Name) نام لایه اپلیکیشن ما را می خواهد.

زیرا یک اکتیویتی جدا باید همراه با کدجاوای جداگانه و رابط کاربری جداگانه برای آن کد باشد.

پس شما می توانید نامی دلخواه برای این دو انتخاب نمایید به شرطی که نام اکتیویتی جدید، با اکتیویتی های موجود، یکسان نباشد.

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

بر روی Finish کلیک کرده سپس مشاهده می کنید که فایل جاوای اکتیویتی جدید ما اضافه شده است.

همچنین لایه ای برای طراحی این اکتیویتی نیز در قسمت layout اضافه شده است.

به قسمت لایه طراحی (layout) اکتیویتی جدید (در اینجا فایل activity_main2.xml) می رویم.

یک TextView به این لایه اضافه می کنیم. من نام این TextView را Activity 2 قرار می دهم.

Layout اکتیویتی دوم

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main2"
    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="com.gsm_developers.intent_gsm.Main2Activity">

    <TextView
        android:text="Activity 2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="218dp"
        android:id="@+id/textView" />
</RelativeLayout>

در اکتیویتی اول، یک دکمه ی Button اضافه کردیم. حال باید به قسمت جاوای اکتیویتی اول برویم تا کدهایی را برای آن دکمه بنویسیم که با کلیک به اکتیویتی دوم از این پروژه منتقل شویم.

پس فایل MainActivity.java را باز می کنیم.

در متد ()onCreate دکمه ی Button را به قسمت جاوای برنامه معرفی می کنیم.

Button Btn = (Button) findViewById(R.id.button);

یک رویداد onClickListener به دکمه Button اضافه می کنیم.

پس باید در این رویداد، کدی تعریف نماییم که با کلیک بر روی Button ، به اکتیویتی دوم منتقل شویم.

Btn.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                startActivity(new Intent(MainActivity.this , Main2Activity.class));
            }
});

همان طور که مشاهده می کنید با استفاده از متدی به نام startActivity این کار صورت می پذیرد.

در این متد، یک Intent جدید با استفاده از دستور New Intent به عنوان ورودی برای startActivity می نویسیم.

این Intent دو آرگومان ورودی می پذیرد.

یکی اکتیویتی که در آن هستیم که در کد بالا به صورت MainActivity.this مشخص شده است.

دومین آرگومان ، اکتیویتی که می خواهیم به آن برویم، که این کار نیز به صورت کد Main2Activity.class نوشته شده است.

MainActivity.java

package com.gsm_developers.intent_gsm;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

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

        Button Btn = (Button) findViewById(R.id.button);
        Btn.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                startActivity(new Intent(MainActivity.this , Main2Activity.class));
            }
        });
    }
}

پروژه را اجرا می کنیم.

وقتی اپلیکیشن اجرا می شود، مشاهده می کنید که Layout مربوط به اکتیویتی اول به شما نشان داده می شود.

پس از کلیک بر روی Button ، اکتیویتی دوم برای شما ظاهر خواهد شد.

آموزش برنامه نویسی اندروید با اندروید استودیو (بخش نهم: مثالی از ساخت یک Activity)

استاندارد

در بخش های قبلی از Activity و چرخه حیات آن صحبت شد. در این بخش می خواهیم نحوه ساخت یک Activity را با مثال آموزش دهیم.

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

اگر بخواهیم یک Activity ایجاد نماییم که به صورت صحیح کار کند باید سه مرحله را دنبال کنیم..

مرحله اول:

یک فایل جاوا در پوشه ی پکیج ایجاد نماییم. پوشه ی پکیج در پوشه ی جاوا قرار دارد. فرض می کنیم نام این فایل قرار است، ActivityExample.java باشد.

مرحله دوم:

یک فایل XML در پوشه ی Layout ایجاد نماییم. پوشه ی Layout را اگر به یاد داشته باشید، در پوشه ی Res قرار دارد. نام این فایل هم فرض می کنیم activity_example.xml می باشد.

مرحله سوم:

معرفی ActivityExample (اسم همان فایل جاوا در مرحله اول)، به فایل AndroidManifest.xml ، که این فایل هم در پوشه manifest قرار دارد.

 

برای یادآوری عکس پوشه های ذکر شده آورده شده است.

manifests-java-res-gsm-developers

ساخت یک Activity

برای ساخت یک Activity، باید بر روی پکیج خود کلیک راست نمایید و از قسمت New به Activity رفته و Empty Activity را انتخاب نمایید.(عکس را ببینید)
پکیج در پوشه ی جاوا اولین فایل است.

android-beginners-15-gsm-developers

وقتی بر روی Empty Activity کلیک کنید، پنجره زیر نمایان می شود.

android-beginners-16-gsm-developers

ما نام ActivityExample را برای نام Activity خود انتخاب می کنیم. به صورت خودکار نام Layout نیز تغییر می کند که ما می توانیم آن را عوض کنیم. ولی در اینجا نیازی نیست.

از قسمت Package Name، می توان پکیج مقصد را انتخاب نمود. در اینجا همان پکیج پیشفرض خود ما انتخاب می شود.

فعلا چیزی را در این قسمت تغییر نمی دهیم و به همین صورت گزینه ی Finish را می زنیم. بعد از زدن گزینه ی Finish انتظار می رود Activity ما به صورت خودکار ایجاد شده باشد.

چک کردن Activity ساخته شده

حال نوبت آن رسیده است که چک کنید چه تغییراتی صورت گرفته است. آیا Activity ما همان طور که خواسته بودیم ایجاد شده است؟

به پوشه ی پکیج می رویم و می بینیم فایل ActivityExample.java ایجاد شده است. این همان نامی بود که برای فایل Java در قسمت قبلی برگزیدیم.

حال به پوشه Layout می رویم و می بینیم که فایل activity_example.xml نیز در این پوشه همانطور که خواسته بودیم ایجاد شده است.

android-beginners-17-gsm-developers

قبلا نیز گفته شد که در فایل AndroidManifest.xml، هر Activity که بسازیم به صورت تگ Activity وجود دارد.

در مرحله سوم نیز گفته شد که وقتی یک Activity بسازیم باید آن را به این فایل معرفی کنیم ولی در اینجا چون همه مراحل به صورت خودکار ایجاد شده است، نیازی به این کار نیست.

به سراغ فایل AndroidManifest.xml می رویم و تغییرات را در آن مشاهده می نماییم.

android-beginners-18-gsm-developers

در بخش بعدی مثالی از یک چرخه حیات Activity که در بخش هشتم در مورد آن صحبت شد، زده خواهد شد.

همچنین در بخش های آینده در مورد نحوه کار با Activity ها آموزش داده می شود.