我试图从 Activity 调用 fragment 的方法,所以我使用这种东西:
getFragmentManager().beginTransaction().replace(R.id.fragmentContainer, new DummyFragment()).commit();
((DummyFragment) getFragmentManager().findFragmentById(R.id.fragmentContainer)).method(arg1, arg2, ...);
我的问题是我遇到了异常:
java.lang.NullPointerException:尝试在 a 上调用虚拟方法“void com.example.app.DummyFragment.method(java.lang.String, java.lang.String, java.util.List)”空对象引用
我想我知道出了什么错误:当我获取 fragment 时,它尚未创建或可访问,那么有什么方法可以使其工作吗?例如, fragment 准备好时的监听器?
谢谢。
最佳答案
似乎您错过了commit()
交易
getFragmentManager().beginTransaction()
.replace(R.id.fragmentContainer, new DummyFragment()).commit();
编辑:
在findFragmentById
之前添加该行
getFragmentManager().executePendingTransactions()
关于java - 创建子 Fragment 后从 Activity 获取子 Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32457563/