我正在尝试从Activity中调用片段的方法,所以我使用这种东西:
getFragmentManager().beginTransaction().replace(R.id.fragmentContainer, new DummyFragment()).commit();
((DummyFragment) getFragmentManager().findFragmentById(R.id.fragmentContainer)).method(arg1, arg2, ...);
我的问题是我得到一个例外:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.app.DummyFragment.method(java.lang.String, java.lang.String, java.util.List)' on a null object reference
我想我知道错误是什么:当我获取片段时,它还没有创建或可访问,所以有什么方法可以使它工作?例如片段准备好时的监听器?
感谢。
答案 0 :(得分:2)
好像你错过了commit()
交易
getFragmentManager().beginTransaction()
.replace(R.id.fragmentContainer, new DummyFragment()).commit();
编辑:
在findFragmentById
getFragmentManager().executePendingTransactions()