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