【问题标题】:Open basefragment from activity从活动中打开基本片段
【发布时间】:2017-04-27 07:21:30
【问题描述】:

如何从 android 应用上的活动中打开片段。我尝试这样做,但片段没有打开:

        BaseFragment manager = new SurveysFragment();
        android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager
                .beginTransaction()
                .replace(R.id.test_l, manager)
                .commit();

【问题讨论】:

    标签: java android android-activity fragment


    【解决方案1】:

    使用此功能

    public void openFragment(Fragment fragment) {
            android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
    
            fragmentManager.beginTransaction().replace(R.id.test_1, fragment).commit();
        }
    

    然后像这样调用这个函数

    openFragment(new BaseFragment());
    

    【讨论】:

    • 对不起,它没有用。因为我需要使用 BaseFragment,而不是 Fragment 。如果我这样做,我在 android.support.v4.app.FragmentManager 中有错误
    • 确保你使用了android.app.v4.FragmentManager和你正在使用的fragment中的fragment
    • 我做到了:openFragment(new SurveysFragment());public void openFragment(Fragment fragment) { FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction().replace(R.id.test_l, fragment).commit(); } 但我收到错误 BaseFragment 无法转换为 Fragment
    【解决方案2】:

    当你想打开 BaseFragment 时,你为什么要创建实例 SurveysFragment 它将surveyFragment 实例保存到 BaseFragment 参考所以像下面这样改变它并注意检查你的 BaseFragment 那个扩展的 Fragment 必须是 android.support.v4.app.FragmentManager, 为此,您可以在您的内部检查 Fragment 的导入 BaseFragment。

     BaseFragment manager = new BaseFragment();
            android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
            fragmentManager
                    .beginTransaction()
                    .replace(R.id.test_l, manager)
                    .commit();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      相关资源
      最近更新 更多