دوره مجازی اندروید (جلسه 14): تبدیل اطلاعات Json به Data Model جاوا

- visibility ۴۳ mode_comment

به نام خدا، سلام. در جلسه قبلی اطلاعات رو از سرور openweathermap گرفتیم، در این جلسه قصد داریم به شما نشان دهیم که چطور ساختار json را می توان به data model جاوا تبدیل کرد تا بتوان آن را در View های اندرویدی نمایش داد.

info توجه

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

ثبت نام در دوره آموزش اندروید

comment دیدگاه کاربران
shahriar rad

با سلام و درود خدمت شما
بنده یک سوالی داشتم
شما دراین قسمت اومدید و از اینترفیس استفاده کردید که به نظرم جای مناسبی نبود یا شایدم اونجوری که راجعبش صحبت کردین اشتباه اومد.
شما اومدید تابع getCourentWeather را در یک قسمت دیگری نوشتین تا ایجا درست و منطقی (یه جورایی حالت functional در php ) از اینجا به بعدش رو اومدید و گفتین اگه بخوایم شی بگیریم ازش کار بیهوده ای هست چون باید getter و اینا براش بنویسیم تا اینجا شم درست ولی بعدش خودتون تابع را به حالت public در آوردین و تازه یک خط دیگه هم بهش اضافه کردین به نام اینترفیس
خوب ما میومدیم تابع را به حالت public در می اوردیم پ فقط ازش شی میگرفتیم و در قسمت activity فرا خوانی میکردیم و شاید احتیاجی هم به implement کردن و نوشتن interface هم نبود

مگه اینکه از اول اینترفیس تعریف میکردیم و در اینجا استفاده می کردیم

سعید شاهینی

دلیل استفاده کردن از Interface اینه که ما نمی دونیم که چه زمانی دیتا از سرور دریافت می شه. چون نمی دونیم نمی توانیم از getter استفاده کنیم. چون مشخص نیست که کی باید متد getter رو صدا بزنیم.

مسعود معینی

سلام
اون قسمتی که Context رو به عنوان پارامتر به newRequestQueue فرستادید میشد از Mainactivity.this استفاده کرد ؟
اگر آره فرقش با کاری که شما کردید یعنی گرفتن نمونه از Context در کلاس جاری چیه ؟

سعید شاهینی

Context کلاسی است که با استفاده از اون می شه Resource های پروژه دسترسی داشت. کلاس Activity رو اگر مشاهده کنید می بینید که کلاس Context رو extend کرده و درواقع اون کلاس رو به ارث برده. حالا شما می تونید به جای پاس دادن Context خود اکتیویتی رو پاس بدید یا یه نمونه از کلاس Context رو.

مسعود معینی

و یک سوال دیگه
اگر فایل Json که داشتیم روش کار میکردیم یک تعدادی المان به صورت تکراری داشت. مثلا فرض کنید ده تا پست رو نمایش میداد که هر کدوم عنوان و توضیحات و … دارن.

اینجا باید کل عملیات Parse کردن رو بذاریم تو حلقه for و آخر هر حلقه یک بار شی مدل رو return کنیم ؟

سعید شاهینی

سلام٬ جلسات بعدی دقیقا این مورد رو آموزش دادم.

Mohammad Sheklabadi

سلام استاد . پروژه رو یه بار خودم نوشتم ولی اصلا متدی که در main activity از interface پیاده سازی کردیم رو اجرا نمیکنه . به نظرتون مشکل میتونه از کجا باشه؟

سعید شاهینی

سلام، مشکل اینه که متد interface صدا زده نمی شه. باید break point بگذارید داخل جایی که متد interface باید صدا زده بشه

نرگس مجتهدزاده

سلام
من پروژه رو دارم انجام میدم ولی می خوام جیسون آبجکت ها رو داخل ریسایکلرویو نمایش بدم
کار با ریسایکلرویو رو بلدم ولی تو این پروژه هر کار می کنم اکتیویتی خالی رو نشون میده و آیتم ها رو نمیاره
ممنون میشم راهنمایی بفرمایید

کیوان علی محمدی

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

نرگس مجتهدزاده

ممنون از پاسخ گویی بسیار سریع…!

کیوان علی محمدی

بابت این تاخیر عذرخواهی می کنیم. بعضا این کامنت ها دیده نمیشن. بازم ببخشید.

نرگس مجتهدزاده

ببخشید گروهی توی تلگرام نیست که این پکیج رو ساپورت کنه ؟اینجوری عملا جواب سوالامون رو نمیگیریم…یا حداقل انجمنی باشه که بشه سوال ها رو دقیق تر پرسید و جواب گرفت

کیوان علی محمدی

گروه تلگرامی نداریم ولی انجامن فعال هستش.

مرتضی

سلام خسته نباشید ، میشه در مورد قسمت 14 ، وقتی از اینترفس استفاده کردیم یکم توضیح بدید ؟؟

سعید شاهینی

سلام تلفنی تماس بگیرید و جایی که برای شما گنگ بود رو بیشتر توضیح بدید تا بتونم بهتر راهنمایی کنم. ممنون

Hamed Hardani

سلام
میخواستم بدونم چطور میشه امکان انتخاب نام شهر رو به کاربر بدم؟
یعنی کاربری قبل از لمس کلید Send Request، توی یک EditText اسم شهرشو بنویسه و اطلاعات دریافتی مربوط به اون شهر باشن

سعید شاهینی

سلام، کافیه که یه EditText اضافه کنید و زمانی که می خواستید Request رو ارسال کنید، متن داخل EditText رو به عنوان QueryString به آدرس Api بدید. به عنوان مثال الان شهر لندن رو به صورت پیش فرض به سرور ارسال می کنه. حالا شما باید متن وارد شده کاربر رو جایگزین شهر لندن کنید.

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
1 2