ฉันกำลังติดตามคำตอบนี้ใน SO ซึ่งมีชื่อว่า:
เปลี่ยนรายการ NavigationView เมื่อผู้ใช้เข้าสู่ระบบ
รหัสทำงานได้ดี แต่เนื้อหาของ NavigationView
เปลี่ยนแปลงเมื่อฉันรีสตาร์ทแอป ฉันต้องการให้เนื้อหามีการเปลี่ยนแปลงหลังจากที่ฉันคลิกเข้าสู่ระบบหรือออกจากระบบ item menus
นี่คือรหัสของฉันในวิธี onCreate()
:
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
if(islogin())
{
navigationView.getMenu().clear();
navigationView.inflateMenu(R.menu.activity_main_drawer1);
} else
{
navigationView.getMenu().clear();
navigationView.inflateMenu(R.menu.activity_main_drawer2);
}
navigationView.setNavigationItemSelectedListener(this);
toggle.syncState();
และนี่คือวิธี islogin()
:
public boolean islogin(){
// Retrieve data from preference:
prefs = getSharedPreferences("UserLoginData", MODE_PRIVATE);
String username = prefs.getString("username", null);
if (username == null) {
return false;
}
else{
return true;
}
}
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก! ขอบคุณ
หมายเหตุ: แม้ว่าคำถามนี้ดูเหมือนซ้ำกับบางคำถาม แต่เป็นเพียงชื่อเรื่อง แต่เนื้อหาแตกต่างไปจากเดิมอย่างสิ้นเชิง