Диалог не воссоздается при смене ориентации - PullRequest
1 голос
/ 11 июля 2011

вызывается с помощью:

ShowDialog (DIALOG_LONG_CLICK_MENU_ID);

Нет проблем с утечкой окна при смене ориентации, НО, когда деятельность воссоздается, никогда не вызывается onCreateDialog или onPrepareDialog?

Не знаю, имеет ли это какое-то значение, но активность находится на вкладке.

Любое понимание возможных причин очень ценится!

@Override
protected Dialog onCreateDialog(int id) {
    Dialog dialog;
    CURRENT_DIALOG = id;
    switch(id) {
        case DIALOG_LONG_CLICK_MENU_ID:
            dialog = displayItemLongClickMenu();
            break;
        default:
            CURRENT_DIALOG = DIALOG_NONE_ID; 
            dialog = null;
            break;
        }
    return dialog;
}    


private Dialog displayItemLongClickMenu() {
    AlertDialog alertDialog;
    AlertDialog.Builder builder;
    builder = new AlertDialog.Builder(this);
    builder.setTitle(R.string.activity_item_dialog_title);
    // save index and top position          
    mIndex = getListView().getFirstVisiblePosition();
    View vLC = getListView().getChildAt(0);
    mTop = (vLC == null) ? 0 : vLC.getTop();        

    builder.setItems(new String[]{ getString(R.string.delete)},
                     new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            final PomodoroApp pA = ((PomodoroApp)getApplicationContext());              
            switch (which){
            case DELETE_ID: 
                mDbHelper.deleteActivity(mItemListDialogId);
                refactorToDoList();
                dialog.dismiss();
                break;
            default:
                break;
            }
        }
    });
    alertDialog = builder.create();
    alertDialog.setCancelable(true);
    return(alertDialog);
}
...