我的应用实现了一个导航抽屉,当我点击按钮时,它们会工作并将我带到一个片段。这是将按钮链接到片段的主活动中的代码:
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
if (id == R.id.nav_storyboard) {
getSupportActionBar().setTitle("Storyboard");
getSupportFragmentManager().beginTransaction().replace(R.id.container,new HomeFragment()).commit();
}
else if (id == R.id.nav_mission) {
getSupportActionBar().setTitle("My Missions");
getSupportFragmentManager().beginTransaction().replace(R.id.container,new SettingsFragment()).commit();
}
else if (id == R.id.nav_profile) {
getSupportActionBar().setTitle("All Missions");
// moveToNewActivity(); //the problem this method does not work might be it's not going from a fragment to an activity
getSupportFragmentManager().beginTransaction().replace(R.id.container,new ProfileFragment()).commit();
}
else if (id == R.id.nav_signout) {
FirebaseAuth.getInstance().signOut();
Intent loginActivity = new Intent(getApplicationContext(),LoginActivity.class);
startActivity(loginActivity);
finish();
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
^请原谅我不匹配的 ID 和姓名
所以我想将按钮直接链接到活动而不是片段,我尝试编写一个在上面的代码中注释掉的方法:
private void moveToNewActivity () {
Intent i = new Intent(this, MissionActivity.class);
startActivity(i);
((Activity) this).overridePendingTransition(0, 0);
}
但这会使我的应用程序崩溃。我也尝试将“this”切换为“getActivity()”,但它表明此方法不存在。有人可以帮我解决这个问题吗?