1

コンストラクター(ListPickerHandlerに注意)

public StarredListPickerDialogFragment(ListPickerHandler h) {
        handler = h;
        mSelectedItems = new ArrayList<StarredList>();
    }

これは私が親フラグメントメソッドを呼び出す方法です(ListPickerHandlerインターフェイスを実装して定義されています)

 alertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
            @Override
            public void onShow(DialogInterface dialog) {
                Button negative = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE);
                Button positive = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
                positive.setEnabled(false);
                negative.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View view) {
                        handler.onNegativeButtonAction(mSelectedItems);
                    }
                });
                positive.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View view) {
                        handler.onPositiveButtonAction(mSelectedItems);
                    }
                });
            }
        });

android osがonSaveInstanceState()を呼び出すと、問題が発生します。ハンドラーはもう定義されておらず、実際にはこの状況を処理する手がかりがありません。

4

1 に答える 1

0

親フラグメントを(バンドルがnullでない場合)呼び出しフラグメントによって実装されるインターフェースであるListPickerHandlerにキャストすることで解決

于 2013-03-28T07:52:03.057 に答える