کد نویسی عملی Custom Adapter در RecyclerView با جاوا
در ادامه مباحث پایهای بخش اول آموزش RecyclerView در اندروید، در این جلسه وارد بخش هیجانانگیز برنامه نویسی و پیاده سازی یک آداپتر اختصاصی (Custom Adapter) با زبان جاوا میشویم. آداپتر به عنوان پل ارتباطی میان پایگاه داده شما و عناصر رابط کاربری، داده های خام را گرفته و به نمای بصری تبدیل مینماید.
در پروژه هایی واقعی، داده ها ممکن است از یک پایگاه داده محلی نظیر دیتابیس SQLite یا از یک وب سرویس RESTful بارگذاری شوند. طراحی تمیز و اصولی متدهای آداپتر به شما اجازه میدهد این اطلاعات را بدون کندی و با کمترین میزان مصرف حافظه پردازش و به مخاطب نمایش دهید.
پیاده سازی سه متد بنیادین آداپتر
هنگام گسترش کلاس از RecyclerView.Adapter<MyViewHolder>، ملزم به پیاده سازی سه متد اصلی با عملکردهای مشخص هستید:
- متد onCreateViewHolder: فایل لایه بندی XML سطر را با استفاده از
LayoutInflaterاینفلیت کرده و یک شیء از کلاس ViewHolder سفارشی ما را بازمیگرداند. - متد onBindViewHolder: مسئولیت اتصال فیلدهای داده در موقعیت (Position) جاری به نماهای تعریفشده در ViewHolder را دارد. در این متد متونی مثل نام و تصاویر درون آیتم ها قرار میگیرند.
- متد getItemCount: تعداد کل عناصر موجود در لیست منبع را گزارش میدهد تا رسیارکلر ویو بداند چه تعداد آیتم برای رندر کردن وجود دارد.
مدیریت حرفه ای رویداد کلیک با Interface
بر خلاف ListView قدیمی که متدی آماده به نام setOnItemClickListener داشت، در RecyclerView شما آزادی عمل کامل برای پیاده سازی رویداد کلیک بر روی کل سطر یا دکمه های خاص داخل آن دارید. بهترین شیوه مطابق با اصول طراحی تمیز، تعریف یک اینترفیس سفارشی مانند OnItemClickListener است:
این رویکرد به اکتیویتی یا فرگمنت اجازه میدهد منطق نویگیشن و رفتن به صفحه جزییات را خود در دست بگیرد بدون اینکه کلاس آداپتر وابسته به کدهای اکتیویتی گردد. همچنین برای لیست های متغیر پرشمار، پیشنهاد میشود در آینده از ابزار DiffUtil برای رفرش هوشمندانه فقط سطرهای تغییریافته بهره بگیرید.
امتیاز و نظرات
هنوز نظری ثبت نشده است. اولین نفر باشید.