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

android-part-2

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

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

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

بازگرداندن نتایج از اینتنت ها

متد ()startActivity یک اکتیویتی دیگر را فراخوانی میکند اما مقدار آن را برای اکتیویتی باز نمیگرداند. برای مثال فرض کنید یک اکتیویتی برای دریافت نام کاربری و رمز عبور ایجاد کرده اید اطلاعاتی که توسط کاربر وارد میشوند باید به اکتیویتی قبلی برای پردازش های لازم بازگردانده شود. اگر نیاز دارید تا اطلاعاتی را از یک اکتیویتی برگردانید باید از متد ()startActivityForResult را فراخوانی کنید. مثال زیر این عملیات را به خوبی نمایش میدهد.

در همان پروژه آموزش قبل (IntentsPrj) کدهای  زیر را به فایل secondactivity.xml اضافه کنید

کدهای فوق یک TextView برای نمایش عبارت “Please enter your name” و یک EditText برای وارد کردن عبارتی که توسط کاربر نوشته میشود و یک دکمه که با فشردن آن عبارت ورودی توسط کاربر باید به اکتیویتی قبل ارسال شود.

حال کدهای زیر را به فایل SecondActivity.java اضافه میکنیم

قسمت های زیر را نیز به فایل ManiActivity.java اضافه میکنیم

حال با اجرای برنامه مطابق شکل زیر ابتدا اولیت اکتیویتی ظاهر شده سپس با فشردن دکمه SecondActivity.xml نمایش داده میشود حال نام خود را وارد کرده و دکمه Ok را کلیک کنید سپس خواهید دید به اکتیویتی اول باز گشته و نام شمارا با استفاده از کلاس Toast نمایش میدهد

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

روش کار

برای فراخوانی یک اکتیویتی و دریافت نتیجه از متد startActivityForResult() استفاده میکنیم

علاوه بر آن برای ارسال یک شی باید کد درخواست آن را همینطور نوشت. کد درخواست یک عدد Integer ساده است که مشخص کننده اکتیویتی است که فراخوانی میکنیم این کار بدین دلیل انجام میشود که نیاز است وقتی یک اکتیویتی مقداری را برمیگرداند آنرا شناسایی کنیم برای مثال فرض کنید در آن واحد چند اکتیویتی را فراخوانی کنیم که ممکن است بعضی از آنها در ارسال نتیجه تاخیر داشته باشند(برای مثال ارسال درخواست به سرور). وقتی اکتیویتی نتیجه راارسال نمود باید فهمید که از طرف کدام اکتیویتی بوده.

*اگر مقدار درخواست برابر ۱- بود بدین معنی است که فراخوانی آن به وسیله های هیچ یک از متدهای  startActivity() ,startActivityForResult() توفیقی نداشته چرا که در هرصورت نتیجه ای برنمیگرداند.

برای برگرداندن یک مقدار توسط اکتیویتی به اکتیویتی فراخوان کننده از شی Intent برای ارسال اطلاعات از طریق متد setData() استفاده میکنیم.

 متد ()setResult یک کد نتیجه را تنظیم میکند(که یا RESULT_OK است یا RESULT_CANCEL) و دیتا(یک شی Intent) به اکتیویتی فراخوان کننده بازگردانده میشود.متد ()finish نیز اکتیویتی را بسته و کنترل را به دست اکتیویتی فراخوان کننده میدهد.

در اکتیویتی فراخوان کننده باید متد ()onActivityResult پیاده سازی شود که درهنگام بازگشت یک اکتیویتی فراخوانی میشود

در این مرحلع است که باید صحت درخواست و نتیجه را چک کرده و مقدار بازگشتی را نمایش دهید. مقدار بازگشتی از طریق آرگومان data ارسال شده است که با استفاده از متد ()getData میتوان به جزییات آن دسترسی داشت .

مدرس : خانم مهندس داودی نژاد

آموزش اندروید فصل دوم قسمت پنجم

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

درباره نویسنده

مطالب مرتبط

نظر بدهید

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