خانه » آموزش برنامه نویسی اندروید » برنامه نویسی اندروید (مقدماتی) » آموزش برنامه نویسی اندروید با IntelliJ IDEA ( قسمت دوم)

آموزش برنامه نویسی اندروید با IntelliJ IDEA ( قسمت دوم)

در این قسمت از آموزش برنامه نویسی اندروید قصد داریم ۲ اکتیویتی بسازیم و با استفاده از Intent ها بین آن ها سویچ کنیم.

 

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

برای ساخت اکتیویتی جدید در فولدر src بر روی فولدری که اکتیویتی قبلی قرارداشت راست کلیک کنید و گزینه New و بعد Android Component را انتخاب کنید.

در پنجره باز شده بخش Name اسم اکتیویتی و Kind رو روی Activity قرار دهید.

ok را بزنید و کد های ما شبیه زیر می شود :

package ir.iact.firstapp;

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


public class lastActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}

 

خوب اکتیویتی ساخته شد حالا نیاز داریم که یک layout هم برای اون بسازیم

در فولدر res و بر روی فولدر layout راست کلیک کنید تا و new سپس layout resource file را بزنید تا پنجره دیگری باز شود.

در قسمت Name اسم layout را بنویسید (last_activity) و ok را بزنید.

نکته : اسم فایل هایی که در پوشه res ساخته می شود از جمله فایل های layout باید فقط با حروف کوچک نوشته شود .

 

خوب حالا یک دکمه هم توی این صفحه قرار میدم و روش می نویسم Close و id اون رو هم میزارم :

@+id/lastActivity_closeButton

توی صفحه main هم یک دکمه دیگه اضافه می کنم و اسمش رو Next میزارم و id اون رو هم :

@+id/main_nextButton

خوب تا اینجا ۲ صفحه داریم که در صفحه اول ۲ دکمه و در صفحه دوم یک دکمه وجود دارد ، حالا میریم کد هارو بنویسیم.

توی صفحه MainActivity کد های زیر رو اضافه کنید :

findViewById(R.id.main_nextButton).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MyActivity.this,LastActivity.class));
            }
        });

و توی صفحه LastActivity کد های زیر رو :

package ir.iact.firstapp;

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


public class LastActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        
        super.onCreate(savedInstanceState);
        setContentView(R.layout.last_activity);
        
        findViewById(R.id.lastActivity_closeButton).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });
    }
}

بعد از اضافه کردن این کد ها برنامه رو اجرا کنید و نتیجه رو ببینید.

 

فایل MainActivity در نهایت شبیه زیر است :

package ir.iact.firstapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MyActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        findViewById(R.id.btn_message).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MyActivity.this,"Salam",Toast.LENGTH_LONG).show();
            }
        });

        findViewById(R.id.main_nextButton).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MyActivity.this,LastActivity.class));
            }
        });
    }
}

 

در این فایل من از Intent استفاده کردم . در اندروید وقتی که قصد داشته باشیم تا یک اکتیویتی دیگر را باز کنیم از Intent استفاده می کنیم و یک شئ از نوع Intent رو به startActivity میدیم تا اکتیویتی را باز کنید.

روش استفادش هم اینجوریه که

ابتدا یک شئ از نوع Intent می سازیم

Intent intent = new Intent(MyActivity.this,LastActivity.class);

برای ساخت این شئ به ۲ المان نیاز داریم ، اولیش context صفحه هست و دومیش کلاس اکتیویتی که قراره بازش کنیم (خوب اگه زیاد متوجه نمیشید فعلا میتونید از الگوی نحوه استفاده ، استفاده کنید و کم کم که برنامه نویسی جاوا خودتون رو قوی کردید بیشتر متوجه میشید)

حالا کافیه این شئ ساخته شده رو به startActivity بدیم تا اکتیویتی رو باز کنه

startActivity(intent);

 

نکته مهم توی استفاده از اکتیویتی ها و Intent ها اینه که وقتی یک اکتیویتی ایجاد می کنید باید حتما اون رو توی Manifest هم معرفی کنید (که البته با روشی که تا اینجا گفتم اگه رفته باشید خود Intellij برای شما اکتیویتی رو معرفی می کنه )  ولی برای اطمینان بیشتر نگاهی به AndroidManifest.xml بکنیم :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="ir.iact.firstapp"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8"/>
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <activity android:name="MyActivity"
                  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=".LastActivity"/>
    </application>
</manifest>

 

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

<activity android:name=".LastActivity"/>

در این خط اکتیویتی ما معرفی شده و میتونیم توی اینتنت ها ازش استفاده کنیم

همین طور MainActivity هم به صورت زیر معرفی شده :

 <activity android:name="MyActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

که قسمت زیر تعیین کننده اولین اکتیویتی برنامه هست (اکتیویتی که موقع باز شدن برنامه باز می شود)

<intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

 

در صفحه بعدی هم که بر روی دکمه Close یک listener قرار دادیم تا موقع کلیک شدن finish() را فراخوانی کند تا اکتیویتی بسته شود.(finish(); اکتیویتی را می بندد).

 

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

 

صفحه اصلی آموزش : آموزش برنامه نویسی اندروید

برچسب ها:
پست قبلی
پست بعدی

درباره ایلیا عابدینی

برنامه نویس اندروید و کارشناس مهندسی پزشکی، نفر سوم مسابقه برنامه نویسی اندروید http://www.schallenge.ir ، از سال 92 برنامه نویسی اندروید رو شروع کردم و در حال حاضر در شرکت عصر دانش در حال توسعه اپلیکیشن تجارت پی می باشدم ، این وبلاگ رو ساختم تا تجربیات روزانه و مفید خودم رو داخل اون بزارم. رزومه : iact.ir/cv

20 دیدگاه

  1. سلام
    با عرض خسته نباشید

    می خواستم بدونم پس چرا آموزش ها را ادامه نمی دی

  2. با سلام خدمت شما

    میخواستم بدونم برای برنامه نویسی اندروید و web application با استفاده از intellij میتونین منو کمک کنید چون من با یکی از دوستام صبحت کردم گفت که اینتلیج از ایکلیپ و نت بینز خیلی بهتره. بنابراین نیاز به یاری شما دارم. و یک سوال اینکه برنامه نویسی اندروید در مقایسه با وب کاربردی مشکلتره مثلا من میخوام برنامه اندرویدی رو بنویسم که مثل وب کاربردی باشه و با نصب آن روی گوشی بتوان اطلاعات رو از بانک اطلاعاتی موجود رد سرور بخونه مثل برنامه اندروید بانک ها. لطفا جوابتون رو برام ایمیل کنید.

    با تشکر 

    • در مورد web application من اطلاعی ندارم ولی در کل intellij و کلا IDE های ساخته شده توسط شرکت jetbrains ، نرم افزار های پرقدرت و هوشمندی هستند که بسیار سرعت کد نویسی شما رو بالا می برند و همین طور بسیاری از کار هارو ساده می کنند. توصیه می کنم حتما نگاهی به سایتش بندازید و IDE های مختلف اون رو ببینید.

      از نظر شخصی من برنامه نویسی اندروید و کلا جاوا خیلی بهتر و راحت تر از php هست ، چون هم IDE خوبی داره هم امکان دیباگ خیلی قوی تری وجود داره ، البته این تجربه شخصی من هست شاید برای زبان php هم دیباگر های خوبی باشه که من اطلاعی ندارم . در مورد زبان های دیگه مثل ASP و یا NODE و … هم خوب بازم اطلاعاتی ندارم . اما برنامه نویسی اندروید خیلی شیرین هست و به سرعت میتونید یاد بگیرید .

      و همین طور برای کار با وب سرور ها نیز لایببری های خوبی (مثل retrofit) برای جاوا هست که بسیار مفید هستند و سرعت کیفیت کار شما رو بالا می برند.

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

    اگه براتون ممکنه این دوره های آموزشی رو ادامه بدین؟

    با تشکر

  4. آقا ایول

     

    ادامه بده آموزشتو

    همینکه یک نفر هم بتونه استفاده کنه کافیه دیگه

     

    اون یک نفر هم  من 😀

    • هاها 😀

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

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

       

  5. سلام ایلیا جان چطوری میتونم با شما ارتباط داشته باشم

    اگر لطف کنید شمار همرا یا ایمیلتون رو بدید ممنون میشم 

    اگر همراه باشه که بهتر چون با واتث اپ راحتر میتونم ارتباط داشته باشم

    ممنون داداشه گلم

  6. سلام مرسی از آموزش خوبتون . من تازه شروع به برنامه نویسی کاندروید کردم اما جاهایی از آن رو متوجه نمیشم.

    الان نمیدونم LayoutInfalerکارش چی هست آخه دارم با لیست ویو کار میکنم هنوز آموزشش رو کامل نتونستم در کنم به زبان ساده برام توضیح بدید.البته با مثال در ضمن اگر براتون امکانش هست ایمیل تماسی بگذارید یا یک راه ارتباطی بجز سایت تا دسترسی راحت تری داشته باشیم.
     

    • واسه اینکه یک xml  رو بسازید باید از inflater استفاده کنید تا اون xml رو در صفحه بکشید و در آخر هم اون رو باید به یک layout دیگه اضافه کنید که توی لیست وقتی یک layout رو میسازید و به عنوان return بر می گردونید خودش اون رو به لیست اضافه می کنه.

      ایمیل من فکر می کنم توی سایت باشه اما بازم اینجا میزارم: eiliya.abedini@gmail.com

  7. اگه ممکنه آموزش و ادامه بدید ، واسه من که مفید بود 🙂

    • دلیل اینکه چندان تمایلی به ادامه این بحث ندارم ، رسمی شدن android studio و سیستم بیلد جدید gradle هست که خیلی چینش ها توش تغییر کرده و اینکه مدتی هست به دلیل امتحان ها و پروژه هایی که در دست دارم فرصت چندانی برای بروز رسانی وبلاگ ندارم .

      اما به محض اینکه فرصتی پیدا کنم آموزش های خوبی میزارم 🙂

  8. سلام آقای عابدینی  خیلی ممنون از آموزش ها واقعا عالیه

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

    • پیغام ارور رو بفرستید 

       

      • ابتدا با عرض سلام و تشکر از آموزش‌های خوبتون
        بنده‌ هم به‌ عنوان یکی از کسانی که‌ وبلاگتون رو دنبال می‌کنم ازتون تقاضا دارم آموزشها رو ادامه‌ بدین، لطفا!ا

        بنده‌ هم بعد از اجرای برنامه‌ قسمت دوم آموزش با این مشکل برخورد کردم و پیام ارورش این هستش:
        sorry,the application has stopped unexpectedly
        لطفا در صورت امکان راهنمایی بفرمایید.

         

  9. باسلام

    من مشتاق یادگیری برنامه نویسی اندروید هستم و ازتون خواهش می کنم که اگر هم در سایت نمی ذاریدش واسه ایمیلم بفرستیتش.

    ممنون می شم

  10. سلام

    لطفا آموزش ها رو به صورت فایل پی دی اف دربیارید

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نمی شود.علامت دارها لازمند. *

*

رفتن به بالا