如何将导航栏链接到 Android Studio 中的活动?

时间:2021-04-16 05:12:08

标签: java android-fragments android-activity

我的应用实现了一个导航抽屉,当我点击按钮时,它们会工作并将我带到一个片段。这是将按钮链接到片段的主活动中的代码:

@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()”,但它表明此方法不存在。有人可以帮我解决这个问题吗?

0 个答案:

没有答案
相关问题