Android 如何在首选项中动态显示/隐藏自定义对话框的按钮?

Android 如何在首选项中动态显示/隐藏自定义对话框的按钮?,android,dialog-preference,Android,Dialog Preference,我已经创建了一个自定义对话框,用于首选项屏幕。除了一件事之外,一切都正常:我想根据内部检查的状态切换“取消”按钮的可见性 通常您有onPrepareDialog和onCreateDialog,您可以在onCreateDialog中执行此操作。但这里我们有一个关于PrepareDialogBuilder的。。。那么onCreateDialogBuilder在哪里?我在哪里可以做这样的事情 builder.setNegativeButton(null, null); 在onPrepareDialo

我已经创建了一个自定义对话框,用于首选项屏幕。除了一件事之外,一切都正常:我想根据内部检查的状态切换“取消”按钮的可见性

通常您有onPrepareDialog和onCreateDialog,您可以在onCreateDialog中执行此操作。但这里我们有一个关于PrepareDialogBuilder的。。。那么onCreateDialogBuilder在哪里?我在哪里可以做这样的事情

builder.setNegativeButton(null, null);
在onPrepareDialogBuilder之后?我无法在onPrepareDialogBuilder中执行此操作,因为我需要取消按钮以防内部检查失败

你能帮我找到正确的方向吗

public UnlockPreference(Context context, AttributeSet attrs) {
    super(context, attrs);
    setDialogLayoutResource(R.layout.dialog_enter_registration);
}

@Override
protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
    super.onPrepareDialogBuilder(builder);
    builder.setTitle(R.string.label_enter_registration);
}


// would need something like
@Override
protected void onCreateDialogBuilder(AlertDialog.Builder builder) {
    super.onCreateDialogBuilder(builder);
    if (internalCheckOk())
        builder.setNegativeButton(null, null);
    else
        builder.setNegativeButton(..., ...);
}