یک فنجان مشاوره
مهـمـان مــا باشیـد

شـمـــاره تــمــاس
031-36628509

Intent در اندروید چیست و چگونه پیاده سازی می شود؟

انتشار 01 خرداد 1397
دیدگاه ها 0
زمان تقریبی مطالعه
گردآوری پدیده تجارت

Intent چیست؟

Intent در لغت، به معنای قصد انجام کاری می باشد. در اندروید نیز از این تعریف دور نیست; به بیانی دیگر، ما با استفاده از Intent پیام ها و حتی دستوراتی را برای سیستم عامل اعلام میکنیم تا سیستم عامل بتواند بر روی آن ها پردازش کند. در بیان ساده تر، Intent واسطی است میان اجزا های مختلف یک پروژه درون یک اپلیکیشن و یا حتی چند اپلیکیشن.

کاربرد های فراوانی برای اینتنت وجود دارد که ساده ترین و در عین حال یکی از پراستفاده ترین آن ها، انتقال بین دو Activity می باشد. مثلا در نظر بگیرید که در یک Activity، سه Button به نام های Home,main page,Exit طراحی کردیم و می خواهیم هرکدام کار خاصی انجام دهند. بدیهی است که عملیات مربوط به هر Button در Activity های مجزا از هم قرار بگیرند. به منظور این کار سه اکتیوتی برای هر Button تعریف کرده و جهت انتقال به هرکدام، از اینتنت استفاده میکنیم.

Intent

همانطور که در تصویر متحرک بالا مشاهده میکنید، با کلیک بر روی هر Button، به اکتیویتی جدیدی منتقل می شویم.

 

انواع اینتنت ها

اینتنت ها به دودسته ی کلی تقسیم می شوند که در زیر آن ها را بررسی میکنیم:

Implicit intent , Explicit intent.

 

Explicit intent:

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

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

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

اکنون به قسمت Xml پروژه رفته و همانطور که در پروژه های قبلی نیز به وضح دیده میشد، تنها یک TextView با مقدار Hello World می باشد. نوع لایه را Linear Layout انتخاب میکنیم.

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

در این اکتیویتی جدید قصد داریم داده ها و اطلاعاتی از جانب ما برای کاربر منتقل شود. یعنی با کلیک دکمه در اکتیویتی اصلی اپلیکیشن، به آن دسترسی پیدا کند. ما نام این Activity را Info می گذاریم و وارد مرحله ی بعد می شویم.

برای قسمت Xml این اکتیویتی جدید، به جای Linear layout این بار از Relative Layout استفاده میکنیم. بنابراین Xml اکتیویتی جدیدمان، مانند زیر خواهد بود:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:id="@+id/activity_Info"
    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="ir.Padide_Tejarat.intent.Info">
</RelativeLayout>

و در قسمت Info.java کدهای زیر را مشاهده خواهید کرد:

package ir.Padide_Tejarat.intent;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
 
public class Info extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_Info);
    }
}

 

همانطور که در مقاله های قبلی نیز ذکر شد، هر Activity که به پروژه اضافه می شود، باید درون Manifest تعریف شود در غیر اینصورت از نظر سیستم عامل اندروید، این اکتیویتی اصلا وجود خارجی ندارد.! خوشبختانه در اندروید استودیو این عمل خودکار انجام می شود. Manifest پروژه ما قبل از ساخت اکتیویتی Info به اینصورت بود :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="ir.Padide_Tejarat.intent">
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>

همانطور که مشاهده می کنیم، MainActivity درون تگ <activity> </activity> تعریف شده است. این نکته را در نظر داشته باشید که باید برای هر اکتیویتی که تعریف میکنیم، داخل تگ <activity> اضافه شود. پس اکتیویتی Info نیز باید در این تگ قرار بگیرد. بنابراین کد زیر را ملاحظه خواهید کرد:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="ir.Padide_Tejarat.intent">
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Info"></activity>
    </application>
 
</manifest>

اکنون در Main_Activity ادامه راه را باهم بررسی میکنیم.

یک Button به نام “اندروید” ایجاد میکنیم و به پروژه اضافه میکنیم و مشخصات کلی آن از قبیل Id،Width,Height را نیز بر روی آن اعمال میکنیم.

اکنون قسمت Xml بصورت زیر خواهد بود:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://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="ir.Padide_Tejarat.intent.MainActivity"
    android:orientation="vertical">

    <Button
        android:text="اندروید"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btn_about"
        android:layout_marginTop="30pt"
        android:textSize="18sp"/>
</LinearLayout>

در مرحله ی  بعد، باید برای Button از intent برای جابه جایی استفاده کنیم. یعنی کاربر پس کلیک روی دکمه “ اندروید” باید به اکتیویتی About منتقل شود. برای این کار نیاز به رویداد onClick داریم. یک راه دیگری هم برای استفاده از رویداد onClick وجود دارد که هم ساده تر بوده و هم باعث نوشتن کدهای کمتری خواهد شد. این روش فراخوانی متد onClick در مواقع بسیاری از جمله اینتنت ها می تواند مورد استفاده قرار گیرد. در ابتدا باید ویژگی onClick را درون خصوصیات Button اضافه کنیم. این کار از بخش کد Layout و همینطور در قسمت Properties فیلد onClick، قابل انجام است. ما این ویژگی را با نام “GoToInfo” به Button اضافه میکنیم:

<Button
    android:text="اندروید"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/InfoBtn"
    android:layout_marginTop="30pt"
    android:textSize="20sp"
    android:onClick="GoToInfo" />

کار ما با Main_Activity و Layout آن تمام شده و اکنون باید به کلاس جاوای آن رفته و مقصد نهایی اینتنت را برای آن اعمال کنیم

جهت انجام این کار،کدهای زیر را در کلاس جاوای خود اعمال کنید:

package ir.Padide_Tejarat.intent;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
     
    public void GoToInfo(View v) {
         
    }
}

حال از کلاس intent یک شی جدید ایجاد می کنیم. مانند زیر:

public void GoToInfo(View v) {
    Intent Info_activity = new Intent(this, Info.class);
    startActivity(Info_activity);
}

اکنون پروژه ما به اتمام رسید. بنابراین هرزمان که بر روی “اندروید” کلیک میکنیم، به کلاس Info.java منتقل می شویم.

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

آیا علاقه مند به یادگیری مباحث اندروید استودیو به صورت حرفه ای و کاربردی هستید؟ آیا برای کسب و کار آنلاین خود نیازمند اپلیکشن برای آن هستید؟

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

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

 

*آینده از آن کسب و کارهای آنلاین است*

تولید شده در بخش تولید محتوای پدیده تجارت

 

 

 

 

مقالات مرتبط

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

دیجیتال برندینگ چیست؟ دیجیتال برندینگ چیست؟ مقالات برندینگ

پدیده تجارت

07 مرداد 1398

چگونه یک سایت استاندارد داشته باشیم؟ چگونه یک سایت استاندارد داشته باشیم؟ مقالات طراحی وب سایت

پدیده تجارت

20 آذر 1396

دلایل شکست اغلب کسب و کار های آنلاین چیست؟ دلایل شکست اغلب کسب و کار های آنلاین چیست؟ مقالات

پدیده تجارت

13 آبان 1397

framework یا فریمورک چیست و چه کاربردی دارد؟ framework یا فریمورک چیست و چه کاربردی دارد؟ مقالات طراحی وب سایت

پدیده تجارت

16 تیر 1397

طراحی موشن گرافیک استوری برد طراحی موشن گرافیک استوری برد

پدیده تجارت

14 اسفند 1396

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

پدیده تجارت

31 مرداد 1398

درآمد ادمین اینستاگرام چه قدر است ؟ درآمد ادمین اینستاگرام چه قدر است ؟ مقالات تجارت الکترونیک

پدیده تجارت

20 فروردین 1401

ساخت بارکدخوان در اندروید ساخت بارکدخوان در اندروید مقالات موبایل

پدیده تجارت

19 دی 1397

آموزش نوار ابزار و ابزارهای فتوشاپ آموزش نوار ابزار و ابزارهای فتوشاپ مقالات طراحی وب سایت

پدیده تجارت

24 اسفند 1400

چگونه می توانیم در اندروید استودیو TAB بسازیم؟ چگونه می توانیم در اندروید استودیو TAB بسازیم؟ مقالات موبایل

پدیده تجارت

08 اردیبهشت 1397

طراحی سایت در اصفهان طراحی سایت در اصفهان مقالات طراحی وب سایت

پدیده تجارت

15 آبان 1396

خانم مهینی دوره آموزش جاوا خانم مهینی دوره آموزش جاوا

پدیده تجارت

08 دی 1397

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

0

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها