0

問題はこのSO投稿に似ています。

@ジェイソンはそれを返信します-

フラグメントはまだアクティビティにアタッチされていません。これは、レイアウトがまだ拡張されていないことも意味します。

その場合、問題は、あるフラグメントから別のフラグメントに文字列を渡すことでした。

ただし、ここでは別のことを行う必要があります。

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)
4

1 に答える 1

0

コードでフラグメントを作成する場合は、アクティビティをフラグメント コンストラクターに渡して、getActivity() の代わりに使用できます。別のケースでは、 onActivityCreated() の前にこのメソッドを呼び出してもまったく意味がありません。

于 2013-03-22T13:35:02.697 に答える