获取片段内的活动会给出空指针异常

时间:2013-03-22 12:56:33

标签: java android nullpointerexception

问题类似于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)

1 个答案:

答案 0 :(得分:0)

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