0

アプリケーションにダイアログ フラグメントがあり、次のように呼び出しています。

    dialog=new
     FragmentActivity.dfragment(this);

    getFragmentManager().findFragmentById(R.id.fragment3).getView()
            .findViewById(R.id.btn1)
            .setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                                             dialog.show(getFragmentManager(), "Dialog");
                                             System.out.println(getFragmentManager().findFragmentByTag("Dialog").getTag());
                     // gives null pointer exception
                }
            });

// ダイアログ フラグ クラス。

public static class dfragment extends DialogFragment {
    public dfragment(DialogDisplayed dd) {
        super();
        this.dd = dd;
        Bundle b = new Bundle();
        b.putBoolean("Value", true);
        setArguments(b);
    }

    DialogDisplayed dd;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        getDialog().setTitle("DIALOG FRAGMENT");
        View v = inflater.inflate(R.layout.dialog_layout, container);
        v.findViewById(R.id.diss).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(getActivity(), "Setting the bundle",
                        Toast.LENGTH_SHORT).show();

                dismiss();
                dd.onDialogClicked();
            }
        });
        return v;
    }

}

ドキュメントがFragManagerに追加すると言っているにもかかわらず、タグ「ダイアログ」でフラグメントを見つけることができないと思います。なぜ例外を与えているのだろうか

4

1 に答える 1