如何在回调中正确保存包含父片段引用的对话框片段的状态?

时间:2013-03-26 08:59:12

标签: android android-fragments android-lifecycle

构造函数(注释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()时,麻烦来了。处理程序没有更多的定义,我实际上没有处理这种情况的线索..

1 个答案:

答案 0 :(得分:0)

通过强制转换(当bundle不为null时)将父片段解析为ListPickerHandler,它是由调用片段实现的接口