2017-04-25 99 views
1

在MainActivity中,我有以下启动片段的方法。如何在调用碎片的方法中调用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的元素,应用程序必须打开主活动,但它不是片段:我该怎么做?

谢谢你们的帮助,我是谁努力学习初学者:它肯定会很容易解决这个问题,我

+0

梅比这将有助于 http://stackoverflow.com/questions/12637693/android-calling-activity-from-fragment – Hani

+0

如果(id == 1){Intent intent = new Intent(getcontext(),MainActivity.class); startactivity(intent);} –

回答

0

这种方法“onNavigationItemSelected”正在从那里叫什么名字?

据我所知,这个方法来自一个片段,你希望回到MainActivity,对吧?

当你说“MainActivity”意味着它是启动活动,那么你可以使用onBackPressed去前一个活动。

getActivity()。onBackPressed();

如果这不是问题,请补充更多细节。这将是有益的:)

+0

这个问题已经解决了,感谢相同。 – GiGa

0

这就是你所需要的

@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); 
} 
+0

startActivity(new Intent(getApplicationContext(),MainActivity.class))是完美的:我学到了一些东西,我忘记了另一个。非常感谢。 – GiGa

+0

@GiGa请接受对它有用的回答 – eugeneek

+0

我没有必要的知名度(15分) – GiGa

相关问题