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

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

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="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://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="http://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="http://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="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="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 منتقل می شویم.

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

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

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

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

 

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

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

 

 

 

 

مقالات مرتبط

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

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

پدیده تجارت

03 بهمن 1396

منظور از طراحی اختصاصی سایت چیست؟ منظور از طراحی اختصاصی سایت چیست؟ مقالات طراحی وب سایت

پدیده تجارت

25 دی 1392

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

پدیده تجارت

19 بهمن 1398

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

پدیده تجارت

19 آذر 1397

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

پدیده تجارت

18 دی 1398

آموزش ساخت بازی موبایلی آموزش ساخت بازی موبایلی مقالات موبایل

پدیده تجارت

10 مهر 1398

تاثیر اپلکیشن های اندروید بر دنیای کسب و کار تاثیر اپلکیشن های اندروید بر دنیای کسب و کار مقالات تجارت الکترونیک

پدیده تجارت

17 مرداد 1396

آموزش سینما 4d دراصفهان آموزش سینما 4d دراصفهان مقالات

پدیده تجارت

12 تیر 1399

چرا طراحی اپلیکیشن اندروید؟ چرا طراحی اپلیکیشن اندروید؟

پدیده تجارت

30 شهریور 1396

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

پدیده تجارت

14 اسفند 1397

آموزش افترافکت در اصفهان آموزش افترافکت در اصفهان

پدیده تجارت

15 دی 1396

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

پدیده تجارت

16 فروردین 1401

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

0

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