0

问题类似于this SO post。

@Jason 回复说 -

您的 Fragment 尚未附加到 Activity,这也意味着您的布局尚未膨胀。

在这种情况下,问题是简单地将字符串从一个片段传递到另一个片段。

但是,在这里我需要做一些不同的事情:

通用.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)
4

1 回答 1

0

如果您通过代码创建片段,那么您可以在片段构造函数中传递您的活动并使用它而不是 getActivity()。在另一种情况下,在 onActivityCreated() 之前调用此方法根本没有意义。

于 2013-03-22T13:35:02.697 回答