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

درود

 

1.

با وجود کد:

materialCardView.setChecked(true);

چه لزومی داره که صفت checkable درون بدنه المان CardView بصورت دستی هم فعال بشه؟

 

2.

قابلیت check box که به آیتم مون دادیم استاد میگن چون id همه آیتمها یکی هست فقط روی اولی کار میکنه. در صورتیکه چون id‌ها  یکسانه و ما چند تا کپی گرفتیم بنابراین باید مثلا همه آیتمها check دار بشن در ابتدای نمایش اپلیکیشن. چرا اینطور نیست؟ و فقط آیتم اول Checkmark میگیره؟

 

3.

با توجه به دستور زیر:

materialCardView.setChecked(!materialCardView.isCheckable());

وقتی روی آیتم اول کلیک بشه از اونجا که برای بار اول materialCardView.isCheckable خروجیش true هست پس نقیضش میشه false و با (setChecked(false علامت check از روی آیتم اول برداشته میشه ولی اگر بار دوم وقتی روی همین آیتم کلیک میشه چرا علامت ckeck برنمیگرده؟ چون در حال حاضر (setChecked(true هست دیگه؟

 

4.

اگر بخوایم  در این مثال، مثل یک CheckBox با کلیک روی هر آیتم علامت تیک یا checkmark به اون منتقل بشه یعنی نشون بده در حال حاضر این آیتم در حال انتخاب هست چه باید کرد؟

 

 

سپاس

 

سلام وقت بخیر

سوال یک رو به درستی متوجه نشدم

سوال دوم به صورت دقیق با این موضوع , در سر فصل‌های پیش رو آشنا خواهید شد .

سوال سوم : من فکر میکنم یه جای کد رو اشتباه نوشتید چون به درستی کار میکرد . فراموش نکنید این مورد رو باید در بدونه clickListener  ویو مربوطه که در اینجا MaterialCardView هست بنویسید.

سوال چهارم : سرفصل TodoList به این موضوع با جزییات پرداخته شده است.

 

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

درود پوریای عزیزم

در مورد سئوال شماره ۱، استاد طی آموزش ضمن نوشتن کد بالا در بدنه onViewCreated کلاس MainFragment اومدن و در بدنه materialCardView هم بصورت دستی صفت ckeckable رو true کردن. سئوالم این هست با وجود کد logicش چه نیازی به دستی ست کردن این صفت هست؟ درست مثل onClickListeener و صفت clickable. البته ناگفته نمونه...
خود من صفت دستی checkable رو برداشتم ودیگه برنامه درست کار نکرد حتی با وجود کد setChecked(true)  در بدنه MainFragment.

در مورد سئوال شماره ۳ هم کد رو ضمیمه میکنم خودت بیزحمت نگاه کن. هنگام اجرای اولیه برنامه همه چیز درست هست و آیکن checked انتخابی بالای گوشه سمت راست آیتم اول هست وقتی روش کلیک میشه از بین میره. تا اینجا همه چیز درسته ولی وقتی دوباره روی آیتم اول کلیک میشه آیکن checked با توجه به کد logic برنامه باید برگرده ولی اینطور نیست.

پژمان آزاد ۱۷ شهریور ۱۳۹۹، ۱۶:۵۴