Java 导航抽屉库fragmentmain是什么意思

Java 导航抽屉库fragmentmain是什么意思,java,android,android-studio,android-fragments,navigation-drawer,Java,Android,Android Studio,Android Fragments,Navigation Drawer,所以我用它来制作一个导航抽屉,但有一件事没有解释: 在MClick函数中: public void onItemClick(int position) { FragmentManager mFragmentManager = getSupportFragmentManager(); Fragment mFragment = new FragmentMain().newInstance(mHelpLiveo.get(position).getName()); if (mF

所以我用它来制作一个导航抽屉,但有一件事没有解释:

在MClick函数中:

public void onItemClick(int position) {
    FragmentManager mFragmentManager = getSupportFragmentManager();
    Fragment mFragment = new FragmentMain().newInstance(mHelpLiveo.get(position).getName());

    if (mFragment != null){
        mFragmentManager.beginTransaction().replace(R.id.container, mFragment).commit();
    }
}

它告诉我FragmentMain尚未解决。我不知道这是什么意思。我必须在MainActivity中创建新片段吗

您提供了库描述中的示例代码。此代码部分显示为实现OnItemClick侦听器的示例。在你的例子中,你似乎复制粘贴了这个部分,显然,你没有像FragmentMain这样的片段。为了实现导航,可以使用菜单位置来处理与菜单项相关的操作

在这个特定的例子中,我假设,在使用指定的位置片段管理器单击菜单项之后,使用新创建的具有某个名称的片段,该名称存储在mHelpLiveo列表中,并通过与菜单位置相关的索引存储

无论如何,您必须实现自己的McClick侦听器行为。让我们考虑一下你有菜单的场景:

  • 天气
在这种情况下,如果不同的页面有不同的片段,McClick方法将有以下代码:

    public void onItemClick(int position) {
    FragmentManager fragmentManager = getSupportFragmentManager();

    Fragment fragment;
    switch(position):{
        case 0: fragment = HomeFragment.newInstance(); break;
        case 1: fragment = WeatherFragment.newInstance(); break;
        case 2: fragment = EtcFragment.newInstance; break;
        default: fragment = HomeFragment.newInstance(); break;
    }


    if (fragment != null){
        fragmentManager.beginTransaction().replace(R.id.container, fragment).commit();
    }
}

您提供了库描述中的示例代码。此代码部分显示为实现OnItemClick侦听器的示例。在你的例子中,你似乎复制粘贴了这个部分,显然,你没有像FragmentMain这样的片段。为了实现导航,可以使用菜单位置来处理与菜单项相关的操作

在这个特定的例子中,我假设,在使用指定的位置片段管理器单击菜单项之后,使用新创建的具有某个名称的片段,该名称存储在mHelpLiveo列表中,并通过与菜单位置相关的索引存储

无论如何,您必须实现自己的McClick侦听器行为。让我们考虑一下你有菜单的场景:

  • 天气
在这种情况下,如果不同的页面有不同的片段,McClick方法将有以下代码:

    public void onItemClick(int position) {
    FragmentManager fragmentManager = getSupportFragmentManager();

    Fragment fragment;
    switch(position):{
        case 0: fragment = HomeFragment.newInstance(); break;
        case 1: fragment = WeatherFragment.newInstance(); break;
        case 2: fragment = EtcFragment.newInstance; break;
        default: fragment = HomeFragment.newInstance(); break;
    }


    if (fragment != null){
        fragmentManager.beginTransaction().replace(R.id.container, fragment).commit();
    }
}

像这样替换代码

创建新实例时,用FragmentMain替换片段对象

另外,我认为新实例是静态方法,所以您可以使用类名直接访问它

public void onItemClick(int position){

    FragmentManager mFragmentManager = getSupportFragmentManager();
    FragmentMain mFragment =  FragmentMain.newInstance(mHelpLiveo.get(position).getName());
    if (mFragment != null){
        mFragmentManager.beginTransaction().replace(R.id.container, mFragment).commit();
    }
}

像这样替换代码

创建新实例时,用FragmentMain替换片段对象

另外,我认为新实例是静态方法,所以您可以使用类名直接访问它

public void onItemClick(int position){

    FragmentManager mFragmentManager = getSupportFragmentManager();
    FragmentMain mFragment =  FragmentMain.newInstance(mHelpLiveo.get(position).getName());
    if (mFragment != null){
        mFragmentManager.beginTransaction().replace(R.id.container, mFragment).commit();
    }
}