تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ دانیال
متود onItemClick
پوریا شفیعی حل شده توسط پوریا شفیعی

با سلام 

سوالی که برای من پیش اومده اینه که این متود onItemClick متود void هستش و استاد گفته بودن که متود‌های void خروجی ندارند! پس چجوری اطلاعات مربوط به fullname و position بر روی ایتم‌های صفحه main activity ست میشن ؟

چون من هرچی نگاه میکنم باید دکمه از سمت کاربر فشرده بشه و اگر هم اطلاعات هم از سمت main activity گرفته بشن و بر روی edittext ست بشن بازهم نیازه که متود onitemclick تو قسمت onclick صدا زده بشه! 

من واقعا چندین بار این قسمت را نگاه کردم و بازهم یکم سخته برام درک شیوه کار متود‌ها ، ممنون میشم اگه یه شفاف سازی بکنید.

 

سلام دوست عزیز وقت بخیر منظور استاد از متد void اینکه خروجی نداره به عنوان مثال اگر من برای یک کلاس متدی استفاده کنم که خروجی string باشه مثل public String getText() باید برای این متد خروجی هم تایین کنم ولی وقتی میگه متد void هستش یعنی خروجی نداره . باز هم اگه متوجه نشدین میتونین به من تو اینستا پیام بدین تا با ویس و فیلم بهتون توضیح بدم . thisisrasoul

 

Mohmmad Rasoul Abdi ۰۴ شهریور ۱۴۰۰، ۰۷:۴۵

سلام دانیال عزیز وقت بخیر

بهت حق میدم توی مبحث ریسایکلر ویو کمی متوجه نشی اما هیچ اشکالی نداره این مبحث یکی از پیچیده‌ترین مباحث برای شروع برنامه نویسی اندروید هست و لازمه یادگرفتنش هم تمرین هست البته که از این جلسه تا اخرین سرفصل خیلی خیلی این مبحث استفاده میشه و براتون جا میفته

 

اما بریم پاسخ سوال ببینید :

 

ما این متد رو نوشتیم و در onBindViewHolder از اون استفاده کردیم

public void bindContact(final String fullname) {
            fullnameTv.setText(fullname);
            firstCharacterTv.setText(fullname.substring(0, 1));
            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    itemEventListener.onItemClick(fullname,getAdapterPosition());
                }
            });
        }
    }

در این متد هر بار که متد onBindViewHolder کال زده بشه عملا bindContact هم صدا زده میشه.

@Override
    public void onBindViewHolder(@NonNull ContactViewHolder holder, int position) {
        holder.bindContact(contacts.get(position));
    }

و ایتم‌ها برامون ست میشن

به عبارتی

()onBindViewHolder باید داده‌های مناسب را بارگیری کند، و از آن برای پر کردن view holder's layout استفاده کند. به عنوان مثال، اگر RecyclerView لیستی از نام‌ها را نشان می‌دهد، ممکن است متد نام مناسب را در لیست پیدا کند، و ویجت TextView را پر کند.

 

پیشنهاد میکنم مقاله رو به رو رو هم مطالعه کنید .

لینک

 

 

 

 

 

 

 

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