I'm trying to use Intent, but it does not work in Navigation Drawer. It worked only on the native Menuitem (3 points), but I want to use it in Navigation Drawer.
can anybody help me?
@Override
public boolean onOptionsItemSelected(MenuItem item){
if (mToggle.onOptionsItemSelected(item)){
return true;
}
return super.onOptionsItemSelected(item);
}
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.menu_one) {
Intent intent = new Intent(this, Activity1.class);
startActivity(intent);
} else if (id == R.id.menu_two) {
Intent intent = new Intent(this, Activity2.class);
startActivity(intent);
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawerLayout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
Instead of using this
keyword , use getApplicationContext()
Intent intent = new Intent(getApplicationContext(), Activity2.class);
startActivity(intent);
or
startActivity(new Intent(Activity1.class, Activity2.class);
Check this
public class SetNavigationView {
-----------------------------
-----------------------------
private Context mcontext;
-----------------------------
-----------------------------
public SetNavigationView(final Activity activity, final NavigationView navigationView, final DrawerLayout drawer) {
this.mcontext = activity.getApplicationContext();
-----------------------------
-----------------------------
/*TODO add menu item selection */
NavigationView.OnNavigationItemSelectedListener item_click_listener = new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
if (id == R.id.nav_home) {
// Handle the home action
Intent intent = new Intent(mcontext, Home.class);
activity.startActivity(intent);
}
-----------------------------
-----------------------------
}
}
navigationView.setNavigationItemSelectedListener(item_click_listener);
}
}
This try code.
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.menu_one) {
startActivity(new Intent(MainActivity.this,Activity1.class));
//MainActivity: Active activity
} else if (id == R.id.menu_two) {
startActivity(new Intent(MainActivity.this,Activity2.class));
//MainActivity: Active activity
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawerLayout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.