۲ پژمان آزاد
چند سئوال پیرامون ViewHolder
پوریا شفیعی حل شده توسط پوریا شفیعی

با درود و احترام فراوان

 

چند سئوال دارم که شماره گذاری میکنم. ممنون میشم راهنمایی بفرمایید:

1.

علت اینکه کلاس ContactViewHolder رو درون کلاس ContactAdapter تعریف کردیم چیست؟ چرا به عنوان یه فایل مجزا در کنار کلاس ContactAdapter نساختیمش؟

2.

متغیر position در کد زیر چطور عوض میشه؟ هوشمنده؟ یعنی چه کسی به این متغیر مقدار میده؟


( public void onBindViewHolder(@NonNull ContactViewHolder holder, int position
; (Log.i(TAG, "onBindViewHolder: position=> "+position
;([holder.bindContact(contacts[position

 

3.عمل بازیافت و تشخیص اینکه از الان به بعد صرفا باید عمل بازیافت انجام بشه و نه صدا زدن متد onCreateViewHolder() برای ایجاد آیتم جدید چگونه هست و از کجا مدیریت میشه؟

 

4.

کامپایلر چگونه event چرخیدن غربیلک موس و یا درگ کردن موس رو میفهمه؟ مثلا در برنامه نویسی رویدادگرا در سی شارپ، eventها برای پنجره‌ها در قالب متدهایی تعریف میشن مثل mouse hover یا mouse click , ... و کلاسهای مربوط به entityهامون دربکگراند پنجره‌ها مدیریت میشن و دیتا تبادل میکنن.

اینجا event‌ها چگونه مدیریت میشن؟

 

5.

مقدار بازگشتی متد getItemCount() کجا استفاده میشه؟ ارتباطی با بحث position داره؟

 

ممنون از راهنمایی شما

سلام و احترام 

1- چون ما میخواهیم اون کلاس رو در قسمت جنریک کلاس آداپتر بکار ببریم پس باید متد ViewHolder رو به صورت innerClass تعریف کنیم (این بحث یکی بحث‌های مشکل هست به مرور اشنا خواهید شد پژمان جان)

2و3و4-این دیگه از زیر ساخت‌های اندروید هست :D که این‌ها توسط همون کلاس هایی مدیریت میشه که از آنها ارث بری کردیم در آداپترمان

3-مقدار بازگشتی متد مربوطه مقدار کل آیتم‌ها رو برمیگرداند مثلا اگر ما 100 تا آیتم داشته باشیم باید مقدار رو 100 در نظر بگیریم یا اگر لیستی داشته باشیم بنویسیم lists.size() 

مقدار پوزیشن بدرد مواقعی میخورد تصور کنید که ما میخواهیم وارد یکی از این آیتم‌ها شویم 

مثل اپلیکیشن دی جی کالا که مثلا ما وارد detail محصول مد نظر میشیم اینکه وارد اون detail میشیم رو در برنامه نویسی با اون position هندل میکنیم

موفق باشی.

بهترین پاسخ
پوریا شفیعی ۱۶ تیر ۱۳۹۹، ۱۷:۴۳

ممنون پوریا جان ولی جواب سئوالهای 2و3و4 واسم مهمن چگونه میتونم در مورد این قضیه تحقیق کنم؟

پژمان آزاد ۱۶ تیر ۱۳۹۹، ۲۰:۵۲