调用Fragment.getChildFragmentManager()时出现NullPointerException

时间:2016-02-22 08:22:07

标签: android tabs searchview

我正在尝试在Activity ToolBar上实现SearchView。在这里,我需要在MainActivity的标签片段下搜索产品。点击搜索图标,应用程序崩溃了,我得到了如下错误。

   java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.FragmentManager android.support.v4.app.Fragment.getChildFragmentManager()' on a null object reference

这是什么意思?我该怎么做才能修复这个bug?请帮助我。

更新

  public Fragment getCurrentFragment() {
    mFragmentManager = getSupportFragmentManager();
    mFragmentTransaction = mFragmentManager.beginTransaction();

    Fragment fragment = mFragmentManager.findFragmentById(R.id.container);
    List<Fragment> fragmentList = fragment.getChildFragmentManager().getFragments();  // Got error in this line
    for (Fragment myFragment : fragmentList) {
        if (myFragment.getUserVisibleHint()) {
            return myFragment;
        }
    }
    return fragmentList.get(0);
}

1 个答案:

答案 0 :(得分:0)

错误很明显。您正在getChildFragmentManager的对象上调用null

在您的情况下,这意味着fragmentmanager无法找到ID为R.id.container

的片段
Fragment fragment = mFragmentManager.findFragmentById(R.id.container);
List<Fragment> fragmentList = fragment.getChildFragmentManager().getFragments();