问题类似于this SO post。
@Jason回复说 -
您的片段尚未附加到活动,这也意味着 你的布局还没有膨胀。
在这种情况下,问题是简单地将字符串从一个片段传递到另一个片段。
但是,我需要做一些不同的事情:
Common.java
public class Common extends Fragment
{
OnSelectedListener mCallback = new OnSelectedListener(){
public void getFailureDialog(){
RecordFailure fd = new RecordFailure();
fd.show(getActivity().getSupportFragmentManager(), "dialog"); //Null pointer exception here.
}
};
我致电mCallback.getFailureDialog()
来调用该方法。
错误日志:
03-22 18:21:30.022: E/AndroidRuntime(9385): java.lang.NullPointerException
03-22 18:21:30.022: E/AndroidRuntime(9385): at com.cornmain.util.Common$1.getFailureDialog(Common.java:112)
怎么做?
更新:
如果我使用fd.show(getFragmentManager(), "dialog");
,则会收到以下错误:
错误日志:
03-22 18:35:18.432: E/AndroidRuntime(11872): java.lang.NullPointerException
03-22 18:35:18.432: E/AndroidRuntime(11872): at android.support.v4.app.DialogFragment.show(DialogFragment.java:125)
03-22 18:35:18.432: E/AndroidRuntime(11872): at com.cornmain.util.Common$1.getFailureDialog(Common.java:112)
答案 0 :(得分:0)
如果您通过代码创建片段,那么您可以在片段构造函数中传递您的活动并使用它而不是getActivity()。在另一种情况下,在onActivityCreated()之前调用此方法毫无意义。