۲ محمد وجدانی زاده
مشخص کردن آیتم انتخاب شده
پوریا شفیعی حل شده توسط پوریا شفیعی

چطور ایتمی که در navigation Drawer انتخاب میشه رو مشخص کنیم تا کاربر بدون در کدوم صفحه هست؟ ممنون

سلام حسن عزیز

به آکادمی خوش اومدی 

برای این کار میتونی از کد زیر استفاده کنی:

navigationView.getMenu().getItem(0).setChecked(true);

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

یا میتونی 

navigationView.setCheckedItem(آی دی ایتم مورد نظر);

با این روش ای دی که برای ایتم مورد نظر ست کردی بنویسی در کرلی براکت و به حالت چک شده درش بیاری.

یا میتونی برای مدیریت بهتر بیای و متد زیر رو در کلاست آورراید کنی و یه سوییچ بذاری و عملیاتی که میخای روی هر ایتم قرار بدی 

@Override
public boolean onNavigationItemSelected(MenuItem item) {
  switch (item.getItemId()){ ....... };
}

که مثلا اگر ایتم ما برابر بود با فلان ای دی , فرگمنت فلان رو به نمایش بگذار.

و همچنین اگر بخواهی در کد XML منو هم میتونی با اتربیوت Chackable یا Checked  ایتمتو به حالت انتخاب در بیاری که بدین صورت دیگه نمیتونی مدیریت روشون داشته باشی  و  صرفا حالت انتخاب رو داری.

یا اگر هم نخواستی آورراید در کلاست کنی میتونی این متد زیر رو روی instance مروبوط به نویگیشن ویو کال کنی (شبیه onClickListener) و روی ایتم‌ها عملایت دلخواهتو انجام بدی 

navigationView.onNavigationItemSelected(MenuItem item)

سوال بود بپرس 

پیروز باشی.

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

سلام ممنون

اینکار رو انجام دادم اما مشکلی که پیش میاد اینه که اون ایتمی که checked رو فعال کنی روی اون حالت میمونه و مثلا با انتخاب آیتم دیگه اون checked از بین نمیره.

من این مشکل رو از توی فایل منو حل کردم.

فقط کافیه آیتم‌های منو رو توی یک group قرار بدی و خاصیت CheckableBehavior رو برابر true قرار بدی در این حالت هر ایتمی که انتخاب کنی خودش به اصطلاح تغییر رنگ میده. :)

محمد وجدانی زاده ۳۱ فروردین ۱۳۹۹، ۰۷:۲۱