Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从菜单项打开“活动”_Java_Android_Menuitem - Fatal编程技术网

Java 从菜单项打开“活动”

Java 从菜单项打开“活动”,java,android,menuitem,Java,Android,Menuitem,我试图使用Intent,但它在导航抽屉中不起作用。它只在本机菜单项(3点)上有效,但我想在导航抽屉中使用它 有人能帮我吗 @Override public boolean onOptionsItemSelected(MenuItem item){ if (mToggle.onOptionsItemSelected(item)){ return true; } return super.onOptionsItemSelected(item); } pu

我试图使用Intent,但它在导航抽屉中不起作用。它只在本机菜单项(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;
}

使用
getApplicationContext()

检查这个

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);
}
}       
这是一个测试代码

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

您提供的身份证参考是否正确?因为这是在导航抽屉上使用意图的方法。因此,请检查导航抽屉的idmenus@AndroidGeek是的,在Android studio中没有错误,并且它正常生成apk。但在应用程序中不起作用。发布完整的活动代码。是否调用了onNavigationItemSelected?
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);
}
}       
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;
}