آموزش برنامه نویسی اندروید
ProgressDialog ها – آموزش ProgressDialog در اندروید
2016-05-29
آموزش برنامه نویسی اندروید
کار با Intent و دریافت نتیجه از اکتیویتی با اینتنت
2016-06-01

اینتنت ها در اندروید و جابجایی بین اکتیویتی ها با اینتنت یا برقراری ارتباط بین اکتیویتی ها در اندروید ، در قسمت سیزدهم آموزش برنامه نویسی اندروید در ادامه مبحث مهم اکتیویتی ها در این بخش در رابطه با جابجایی بین اکتیویتی ها با استفاده از اینتنت ها (Intent) آموزش داده ایم و با مثالی مشخص نحوه کاربرد آن را مفصل شرح داده ایم.

اینتنت ها در اندروید ، جابجایی بین اکتیویتی ها با اینتنت در اندروید – آموزش برنامه نویسی اندروید – قسمت سیزدهم

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

جابجایی بین اکتیویتی ها با اینتنت

برنامه شما میتواند یک یا تعدادی اکتیویتی داشته باشد.وقتی برنامه شما بیشتر از یک اکتیویتی داشته باشد گاها نیاز است تا از یک اکتیویتی به اکتیویتی دیگر برویم این کار را به وسیله اینتنت ها انجام میدهیم.

مثال زیر به شما نشان میدهد که چگونه یک اکتیویتی دیگر به پروژه اضافه کرده و بین اکتیویتی ها حرکت میکنیم.

ابتدا طبق آموزش های قبل پروژه جدیدی به نام IntentsPrj ایجاد کرده  و یک اکتیویتی جدید با نام SecondActivity از مسیری که در تصویر زیر مشخص شده ایجاد میکنیم.

اینتنت ها در اندروید و جابجایی بین اکتیویتی ها با اینتنت
اینتنت ها در اندروید و جابجایی بین اکتیویتی ها با اینتنت

حال همانطور که در آموزش های قبل مفصل توضیح داده شد باید هر اکتیویتی جدیدی که ایجاد میکنیم را درون فایل manifest برنامه معرفی کنیم به همین دلیل دستورات پررنگ شده زیر را به فایل AndroidManifest.xml اضافه میکنیم

<activity
            android:name=".MainActivity"
            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=".SecondActivity"
            android:label="Second Activity">
			
            <intent-filter>
                <action android:name="learn.SecondActivity" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

حال در این مرحله باید با کلیک راست یک کپی از فایل activity_main.xml (در مسیر res/layout) ایجاد میکنیم و در مسیر برروی res/layout کلیک راست کرده گزینه past را کلیک میکنیم و نام آن را به نام secodactivity.xml تغییر میدهیم حال نتیجه ای مطابق شکل زیر خواهیم داشت

اینتنت ها در اندروید و جابجایی بین اکتیویتی ها با اینتنت
اینتنت ها در اندروید و جابجایی بین اکتیویتی ها با اینتنت

حال میخواهیم درون فایل secondactivity.xml که در واقع نمای ظاهری SecondActiviy میباشد یک متن قرار دهیم درون فایل secondactivity.xml کدهای زیر را اضافه میکنیم

<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is SecondActivity" />

حال در این مرحله باید activity_main.xml را تغییر داد چون برنامه بدین صورت است که از اکتیویتی main به اکتیویتی second برویم پس در activity_main.xml یک Button یا دکمه قرار میدهیم که با فشرده شدن به اکتیویتی دوم پرش کند. دستورات ایجاد Button نیز بدین صورت میباشد

<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click to Display Second Activity"
        android:onClick="onClick" />

حال در فایل SecondActivity.java برای مشخص کردن layout چنین کدنویسی میکنیم

import android.app.Activity;
import android.os.Bundle;
public class SecondActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState){
                 super.onCreate(savedInstanceState);
                 setContentView(R.layout.secondactivity);
        }
}

حال در مرحله اخر باید  درون فایل MainActivity.java مشخص کنیم که با فشردن Button ایجاد شده به SecondActivity پرش کند پس در این فایل نیز کدهای پررنگ شده زیر را اضافه میکنیم

import android.os.Bundle;
import android.view.View;
import android.app.Activity;
import android.content.Intent;;
public class MainActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        } 

      public void onClick(View v)
      {
        Intent intent=new Intent(MainActivity.this,SecondActivity.class);
		MainActivity.this.startActivity(intent);
      }
}

همانوگونه که مشاهده میکنید پارامترهایی که برای شی کلاس Intent تعریف کردیم شامل کلاس جاری که میخواهیم از آن به کلاس بعد برویم و پارامتر دوم کلاس دوم که مقصد ما است قرار میدهیم با صفت class.

عبارات فوق را میتوان بدین صورت نیز نوشت

startActivity(new Intent(“learn.SecondActivity”));

همانگونه که مشاهده هرگاه دکمه کلیک شود از متد ()startActivity برای نمایش دادن SecondActivity از طریق ایجاد یک شی از  کلاس Intent و ارسال نام فیلتر (SecondActivity (learn.SecondActivity به عنوان آرگومان استفاده میشود.

توجه:
کد startActivity() در دستورات فوق را میتوان به صورت زیر نیز نوشت:

startActivity(new Intent(this, SecondActivity.class));

اما باید توجه داشت که تنها درصورتی میتوان از این گونه دستور استفاده کرد که اکتیویتی فراخوانی شده (مقصد) در پروژه جاری قرار داشته باشد.

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

اینتنت ها در اندروید ، آموزش کار با Intent در اندروید
اینتنت ها در اندروید و جابجایی بین اکتیویتی ها با اینتنت

روش کار برقراری ارتباط بین اکتیویتی ها در اندروید

همانگونه که میدانید یک اکتیویتی از یک بخش رابط کاربری (برای مثال main.xml) و بخش کلاس (مثلا MainActivity.java) تشکیل شده بنابراین هرگاه بخواهید یک اکتیویتی دیگر را ایجاد کنید باید ای دو بخش را نیز ایجاد کنید. در فایل manifest برنامه اکتیویتی جدید خود را چنین معرفی کردیم

<activity
        android:name=".SecondActivity"
        android:label="Second Activity">
            <intent-filter>
                <action android:name="learn.SecondActivity" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
</activity>

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

  • “android:name=”.SecondActivity :نام اکتیویتی ایجاد شده میباشد.
  • “android:label=”Second Activity : لیبل در نظر گرفته شده برای اکتیویتی میباشد.
  • “action android:name=”learn.SecondActivity : نام اینتنت برای اکتیویتی را مشخص میکند که دلخواه است اما سعی کنید از یک نام منحصر به فرد مثل دامنه خود استفاده کنید ت احتمال تداخل با نام اینتنت دیگر بوجود نیاید.اکتیویتی های دیگر که بخواهند از این اکتیویتی استفاده کنند از این نام استفاده میکنند.
  • “category android:name=”android.intent.category.DEFAULT : گروه دسته بندی این فیلتر اینتنت مشخص میکند هرگاه این را به اینتنتی اضافه کنید اکتیویتی میتوانید با استفاده از متد ()startActivity توسط اکتیویتی دیگر فراخوانی شود.

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

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *