从NavigationDrawer上的Activity转到Fragment

时间:2015-08-24 13:48:06

标签: android android-activity fragment navigation-drawer

我有一个活动就像一个演示文稿,我想放一些按钮,这样我就可以直接转到特定的片段(我从MainActivity中选择一个)。

我尝试过使用getSupportFragment和Activity.getSupportFragment,但没有任何效果。而且,显然,没有一个简单的意图。

感谢。

这是MainActivity“Splash”:

  public class Splash extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lay_splash);


    }
}

FragmentActivity的开始。它不完整,因此包含错误。这是包含片段的活动

public class FragmentActivity extends ActionBarActivity
    implements NavigationDrawerFragment.NavigationDrawerCallbacks {

/**
 * Fragment managing the behaviors, interactions and presentation of the navigation drawer.
 */
private NavigationDrawerFragment mNavigationDrawerFragment;

/**
 * Used to store the last screen title. For use in {@link #restoreActionBar()}.
 */
private CharSequence mTitle;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mNavigationDrawerFragment = (NavigationDrawerFragment)
            getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
    mTitle = getTitle();

要在视图之间切换,我使用:

public void onNavigationDrawerItemSelected(int position) {
    // update the main content by replacing fragments
    FragmentManager fragmentManager = getSupportFragmentManager();
    Fragment views=null;
    switch (position) {
        case 0:
            //news
            views= new news();
            break;
        case 1:
            //time
            views=new time();
            break;
        case 2:
            //Ins
            views=new Ins() ;
            break;

    }

fragmentManager.beginTransaction()
            .replace(R.id.container, views)
            .commit();
}

1 个答案:

答案 0 :(得分:0)

好的,我可以尝试为您提供解决方案:您可以在this指南后面的SplashActivity中添加所有片段,而不是创建新视图。

将所有片段设置为View.GONE。 用户点击按钮后,将相关片段的View属性更改为Visible,将所有其他片段的View属性更改为Gone

每次用户点击按钮时都会执行此操作,除了您需要的片段外,所有片段都会消失。

这应该可以,但我建议您查看有关如何使用NavigationDrawer的official documentationthis指南。

希望我帮助,祝你好运!