Java 从菜单项打开“活动”
我试图使用Intent,但它在导航抽屉中不起作用。它只在本机菜单项(3点)上有效,但我想在导航抽屉中使用它 有人能帮我吗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
@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;
}