0

کار با Activity ها ، در برنامه نویسی اندروید

 
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

ارسال یک آرایه (Array) (از نوع رشته یا عدد یا ...) از یک Activity به Activity دیگر، در برنامه نویسی
شنبه 17 مرداد 1394  6:06 PM

برای ارسال مقدار از Activity فعلی، روش putExtra به کار می رود. بهتر است ابتدا شکل کلی آن را بیان کنیم و بعد به صورت جداگانه، شیوه استفاده از آن برای انواع متغیرها (رشته، عدد و ...) را شرح بدهیم. شیوه کلی استفاده از روش putExtra ، به صورت زیر می باشد :


intent.putExtra(key, value);

که در آن، intent ، یک شیء (object) از نوع Intent می باشد (یک شیء که از کلاس Intent ساخته شده)(که از آن برای رفتن به Activity بعدی استفاده می کنیم). key باید به صورت یک رشته باشد که نامی منحصربفرد و انتخابی برای دریافت مقدار در Activity بعدی می باشد (زیرا ممکن است چندین مقدار را ارسال کنیم و بنابراین باید هر کدام، یک نام منحصربفرد (key) داشته باشند تا بتوانیم آنها را به صورت جداگانه دریافت کنیم). value نیز همان مقداری است که می خواهیم به Activity بعدی ارسال شود.

ارسال یک آرایه (Array) از نوع رشته (String) :

درون Activity اول، کدهای زیر را می نویسیم :


String myArray_1[] = {"ali","hamed","reza"};
Intent intent = new Intent(getApplicationContext(), NewActivity.class);
intent.putExtra("key_name", myArray_1);
startActivity(intent);

دقت کنید که NewActivity ، نام Activity جدیدی است که وارد آن خواهیم شد و اطلاعات به آن ارسال می گردد.

سپس درون Activity دوم، باید کدهای زیر را بنویسیم :


Bundle extras = getIntent().getExtras();
if (extras != null) {
    String[] myArray_2 = extras.getStringArray("key_name");
}

البته شرط if را می توان برداشت. در رشته (String) با نام myVariable_2 ، مقدار مورد نظرمان ذخیره شده است.

نکته :

قبل از دریافت مقدار، می توانیم چک کنیم که آیا اصلا مقداری با آن نام ارسال شده است یا خیر (با دستور if) :


Bundle extras = getIntent().getExtras();
if (extras != null) {
    if(extras.containsKey("key_name")){
        String[] myArray_2 = extras.getStringArray("key_name");
    }
}

ارسال یک آرایه (Array) از نوع عدد (int) :

درون Activity اول، کدهای زیر را می نویسیم :


int myArray_1[] = {1,2,3};
Intent intent = new Intent(getApplicationContext(), NewActivity.class);
intent.putExtra("key_name", myArray_1);
startActivity(intent);

دقت کنید که NewActivity ، نام Activity جدیدی است که وارد آن خواهیم شد و اطلاعات به آن ارسال می گردد.

سپس درون Activity دوم، باید کدهای زیر را بنویسیم :


Bundle extras = getIntent().getExtras();
if (extras != null) {
    int[] myArray_2 = extras.getIntArray("key_name");
}

البته شرط if را می توان برداشت. در متغیر با نام myVariable_2 (که از نوع int می باشد)، مقدار مورد نظرمان ذخیره شده است.

ارسال یک آرایه (Array) از نوعی غیر از رشته (String) یا عدد (int) :

همان طور که مشاهده کردید، در Activity دوم، برای دریافت رشته (String)، از روش getStringArray و برای دریافت عدد (int)، از روش getIntArray استفاده شد. بنابراین برای هر نوع متغیر، باید تنها روش (method) مربوط به آن را بدانیم. برای پیدا کردن این روش، در برنامه eclipse ، نشانگر موس را بعد از عبارت extras.get برده (کلیک می کنیم تا نشانگر در آنجا قرار بگیرد) و کلیدهای Ctrl و Space را به صورت همزمان از کیبورد فشار می دهیم تا تمامی روش های قابل انتخاب، نمایش داده شوند :

ارسال یک آرایه (Array) (از نوع رشته یا عدد یا ...) از یک Activity به Activity دیگر، در برنامه نویسی اندروید
تشکرات از این پست
mtk_designer mty1378
دسترسی سریع به انجمن ها