Java 获取片段内的活动会导致空指针异常

Java 获取片段内的活动会导致空指针异常,java,android,nullpointerexception,Java,Android,Nullpointerexception,问题类似于SO post @杰森回答说- 您的片段尚未附加到活动,这也意味着 你的布局还没有膨胀 在这种情况下,问题是简单地将字符串从一个片段传递到另一个片段 然而,在这里我需要做一些不同的事情: Common.java public class Common extends Fragment { OnSelectedListener mCallback = new OnSelectedListener(){ public void getFailureDialog(){

问题类似于SO post

@杰森回答说-

您的片段尚未附加到活动,这也意味着 你的布局还没有膨胀

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

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

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)

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

在哪里调用getFailureDialog()?那么您是如何声明您的片段的:用代码还是用xml?请看一看:这是同一个问题……您使用的是最低API级别8,所以您使用的是
getSupportFragmentManager()
而不是
getFragmentManager()
?@Grishu请看我更新的问题。我很确定您在将片段附加到活动之前调用了此方法。