【问题标题】:How can I call the MainActivity in a method that recalls fragments?如何在调用片段的方法中调用 MainActivity?
【发布时间】:2017-09-22 14:46:35
【问题描述】:

在 MainActivity 我有以下启动片段的方法。

@Override
public void onNavigationItemSelected(MenuItem item) {
    int id = item.id;
    Fragment fragmentToShow = null;
    if (id != 1){
        fragmentToShow = MoviesFragment.newIstance(item);
    }
    if (fragmentToShow != null){
        launchFragment(fragmentToShow, null);
    }
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(Gravity.LEFT);
}

如果点击了 id = 1 的元素,应用程序必须打开主活动但它不是片段:我该怎么做?

谢谢大家的帮助,我是一个尝试学习的初学者:我的问题肯定很容易解决

【问题讨论】:

标签: android


【解决方案1】:

这就是你需要的

@Override
public void onNavigationItemSelected(MenuItem item) {
    int id = item.id;

    if (id == 1) {
        Intent intent = new Intent(getcontext(), MainActivity.class);
        startactivity(intent‌​);
        return;
    }

    Fragment fragmentToShow = null;
    if (id != 1){
        fragmentToShow = MoviesFragment.newIstance(item);
    }
    if (fragmentToShow != null){
        launchFragment(fragmentToShow, null);
    }
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(Gravity.LEFT);
}

【讨论】:

  • startActivity(new Intent(getApplicationContext(), MainActivity.class)) 是完美的:我学到了一些东西,却忘记了另一个。非常感谢。
  • @GiGa 如果对您有用,请接受答案
【解决方案2】:

这个方法“onNavigationItemSelected”是从哪里调用的?

据我了解,此方法来自 Fragment,您希望回到 MainActivity,对吗?

当您说“MainActivity”表示它是启动活动时,您可以使用 onBackPressed 转到上一个活动。

getActivity().onBackPressed();

如果这不是问题,请补充更多细节。这会很有帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    相关资源
    最近更新 更多