如何从导航栏中调用主要活动

问题描述 投票:-1回答:2

我创建了一个导航抽屉,它有一个home选项,我想将它重定向到主活动。所有其他选项都会打开一个片段。

我收到一个错误,说没有定义getactivity。是否可以从活动本身调用活动。如果是,我可以获得代码。

我已经删除了部分代码,因为它是创建导航抽屉时的默认设置。这是我的主要活动:

private void displaySelectedScreen(int itemId) {

    //creating fragment object
    Fragment fragment = null;

    //initializing the fragment object which is selected
    switch (itemId) {
        case R.id.nav_home:
            Intent in = new Intent(this.getActivity(), MainActivity.class);
            startActivity(in);
        case R.id.nav_contact_us:
            fragment = new ContactUs();
            break;
        case R.id.nav_how_to_convert:
            fragment = new HowAppWorks();
            break;
        case R.id.nav_team:
            fragment = new Team();
            break;
    }

    //replacing the fragment
    if (fragment != null) {
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.replace(R.id.content_frame, fragment);
        ft.commit();
    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
}

@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {

    displaySelectedScreen(item.getItemId());
    return true;
}
android android-navigation-drawer
2个回答
0
投票

注意:Activity类没有getActivity()方法

startActivity(new Intent(MainActivity.this, MainActivity.class));
finish()

0
投票

正如你所说,你在MainActivity中,你仍然希望移动MainActivity感染它是不好的方法,你只能刷新数据或重新加载视图..但如果仍然希望这是你的代码中的问题,因为假设它的MainActivity代码使用MainActivity.this在上下文中不是这个。 getActivity();

Intent in = new Intent(MainActivity.this, MainActivity.class);
startActivity(in);
© www.soinside.com 2019 - 2024. All rights reserved.