コンストラクター(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()を呼び出すと、問題が発生します。ハンドラーはもう定義されておらず、実際にはこの状況を処理する手がかりがありません。