ساخت Swipe Down to Refresh در اندروید

ساخت Swipe Down to Refresh در اندروید

سلام دوستان;

شاید شما هم متوجه شده باشید که نرم افزار هایی مانند گوگل پلاس و توییتر این قابلیت را ایجاد کرده اند که بتوانید با پایین کشیدن صفحه و رها کردن، محتوی آنرا بروز رسانی کنید. هر زمان که صفحه را از بالا به پایین بکشید یک لود کننده(loader) تا زمانی که محتوای صفحه بروز شود نشان داده خواهد شد. در این آموزش ما سعی خواهیم کرد ساخت Swipe Down to Refresh در اندروید را با یکدیگر بسازیم.

 

 

×در صورت عدم مشاهده تصاویر لطفا نرم افزار گذر از تحریم خود را فعال کنید.

۱- Android SwipeRefreshLayout

پیساخت Swipe Down to Refresh در اندروید بسیار آسان است. هر زمان که می خواهید swipe down را در صفحه ای پیاده سازی کنید کافیست SwipeRefreshLayout به عنوان المان اصلی صفحه، پیاده سازی کنید. ما می خواهیم آن را همراه با یک ListView ، و اینترفیس SwipeRefreshLayout.OnRefreshListener را در Activity پیاده سازی کنیم. زمانی که کاربر صفحه را پایین می کشد، متد ()onRefresh پیاده سازی خواهد شد.

۲- مثال JSON

در آموزش ساخت Swipe Down to Refresh در اندروید ، من بیست فیلم برتر را در ListView نمایش خواهم داد. برای انجام این کار من یک سرویس Json را آماده کرده ام که ۲۰ فیلم برتر را در هر در خواست نمایش خواهد داد. در ابتدا مقدار افست باید ۰ باشد تا در هر درخواست مقدار ۲۰ فیلم اول را دریافت کند.

URL: http://api.androidhive.info/json/imdb_top_250.php?offset=0

۳- ساخت پروژه اندروید

۱- در نرم افزار اندروید استودیو(Android studi) یک پروژه جدید بسازید.

۲- قسمت build.gradle را بازکنید و کتابخانه Volley را به آن اضافه کنید. ما از این کتابخانه برای دریافت HTTP و دریافت اطلاعات از Json استفاده می کنیم.

۳- بخش colors.xml را در مسیر res ⇒ values باز کنید و مقادیر زیر را در آن جایگذاری کنید.

۴- در پکیج برنامه، چند پکیج بسازید و نام آنها را  app, activity و helper قرار دهید.

۵- درون پکیج app، یک کلاس بسازید و نام آنرا MyApplication.java قرار دهید.

۶- قسمت AndroidManifest.xml را باز کنید و مجوز استفاده از اینترنت را برای دریافت Json جهت ساخت Swipe Down to Refresh در اندروید صادر کنید.

۷- اکنون باید یک آداپتور برای ListView بسازیم. در مسیر res ⇒ layout یک فایل xml بسازید و نام آن را list_row.xml قرار دهید.

۸- در پکیج helper، یک فایل جاوا بسازید و نام آن را Movie.java بگذارید و کد های زیر را در آن قرار دهید. این یک کلاس مدل مورد نیاز برای ایجاد اشیاء فیلم به ارائه اطلاعات به فهرست نمایش است.

۹- در پکیج helper، یک فایل جاوا دیگر بسازید و نام آن را SwipeListAdapter.java قرار دهید. این کلاس یک کلاس آداپتور سفارشی است که با list_row.xml و استفاده از داده های مناسب است.

۱۰- حال ما تمام فایل های مورد نیاز برای ساخت Swipe Down to Refresh در اندروید در اختیار داریم، بیایید شروع کنیم. فایل Layout اصلی خود(activity_main.xml) را باز کنید و فایل را به صورت زیر تغیر دهید. من یک ListView برای نمایش نام فیلم ها اماده کرده ام و انرا درون یک SwipeRefreshLayout قرار داده ام.

۱۱. در اخر برای ساخت Swipe Down to Refresh در اندروید، MainActivity.java را باز کنید و تغییرات زیر را در آن انجام دهید.

>>  SwipeRefreshLayout.OnRefreshListener را در activity پیاده سازی کنید و متد ()onRefresh را درون آن override کنید.

>> ()fetchMovies را صدا بزنید و برای دریافت اطلاعات از Json استفاده می شود.

>> متد ()onRefresh باعث شده هر زمان که صفحه را به پایین می کشد فراخوانی شود. پس ()fetchMovies را در درون خودش اجرا میکند تا لیست ۲۰ فیلم برتر را دریافت کند.

mobcollege

۴- کلاس PHP برای تولید Json

 

×برای تست نرم افزار حتما از گوشی فیزیکی (واقعی) استفاده کنید.

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

عضو می‌شوم:)

مقاله های مرتبط :

دیدگاه خود را بیان کنید :

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

۱۱ دیدگاه برای این مطلب ثبت شده است

  1. محمود
    ۸:۵۸ ۱۳۹۶/۰۷/۰۱

    با عرض سلام و خسته نباشید

    بنده طبق آموزش های شما پیش رفتم اما وقتی که می خوام برنامه رو ران کنم ارور میده و بسته میشه
    و خلاصه برنامه رو دیباک کردم و به این خط کد در کلاس MainActivity گیر داده:

    MyApplication.getInstance().addToRequestQueue(req);

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

    خیلی ممنون میشم راهنماییم کنیم
    پیشاپیش ممنون از جوابتون

    • امیر زنگی آبادی
      ۷:۲۸ ۱۳۹۶/۰۷/۰۲

      سلام
      لطفا متن خطا را که در نرم افزار و زمان اجرا داده می شود را به صورت کامنت برای ما ارسال کنید تا دقیق ترین جواب را به شما بدهیم
      شما میتوانید برای دقیق تر پیدا کردن علت خطا از یک try catch استفاده کنید.
      باتشکر از شما

  2. محمود
    ۱۰:۲۷ ۱۳۹۶/۰۷/۰۱

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

  3. محمود
    ۱۰:۰۳ ۱۳۹۶/۰۷/۰۲

    با عرض سلام

    از قسمت LogCat نرم افزار عکس گرفتم

    http://s8.picofile.com/file/8307286550/Capture.PNG

    خیلی ممنون

    • محمود
      ۴:۲۷ ۱۳۹۶/۰۷/۰۳

      با سلام

      خیلی ممنون

    • امیر زنگی آبادی
      ۱۱:۵۸ ۱۳۹۶/۰۷/۰۴

      سلام

      در فایل manifest و بین دو تگ application، فایل جاوا MyApplication را باید معرفی کنید.( در خط اول بعد از تگ application این کار انجام شده است)

      فایل های جاوایی که از application ارث بری می کنند باید در فایل manifest تعریف می شوند.

      موفق باشید 🙂

      • محمود
        ۹:۵۸ ۱۳۹۶/۰۷/۰۴

        سلام خسته نباشید

        متاسفانه این کارو هم کردم اما همچنان برنامه اجرا نمیشه و بسته میشه.

        سورس برنامه رو براتون میفرستم اگه وقت کردید ببینید مشکلش چیه.

        http://s8.picofile.com/file/8307527692/VolleySwipe.zip.html

        خیلی ممنون

        • امیر زنگی آبادی
          ۷:۱۲ ۱۳۹۶/۰۷/۰۵

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

  4. محمود
    ۹:۲۴ ۱۳۹۶/۰۷/۰۵

    سلام

    اگه زحمتی نیست کد هارو برام ایمیل کنید خیلی ممنون.

    • امیر زنگی آبادی
      ۶:۳۳ ۱۳۹۶/۰۷/۰۶

      سلام
      فایل از طریق پشتیبانی برای شما ارسال شد
      در صورت عدم مشاهده در inbox بخش spam ایمیل خود را چک کنید و ایمیل را به inbox منتقل کنید
      موفق باشید 🙂