1

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

通常您有 onPrepareDialog 和 onCreateDialog,您可以在 onCreateDialog 中执行此操作。但是这里我们有 onPrepareDialogBu​​ilder... 那么 onCreateDialogBu​​ilder 在哪里呢?我在哪里可以做类似的事情

builder.setNegativeButton(null, null);

在 onPrepareDialogBu​​ilder 之后?我无法在 onPrepareDialogBu​​ilder 中执行此操作,因为我需要取消按钮以防内部检查失败。

你能帮我进入正确的方向吗?

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(..., ...);
}
4

0 回答 0