从菜单项打开活动

问题描述 投票:1回答:3

我正在尝试使用Intent,但它在导航抽屉中不起作用。它仅适用于原生Menuitem(3分),但我想在导航抽屉中使用它。

有谁能够帮我?

@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;
}
java android menuitem
3个回答
-1
投票

而不是使用this关键字,使用getApplicationContext()

Intent intent = new Intent(getApplicationContext(), Activity2.class);
startActivity(intent);

要么

startActivity(new Intent(Activity1.class, Activity2.class);

-1
投票

检查一下

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);
}
}       

-1
投票

这个尝试代码。

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.