我创建了一个从首选项屏幕使用的自定义对话框。一切正常,除了一件事:我想根据内部检查的状态切换“取消”按钮的可见性。
通常您有 onPrepareDialog 和 onCreateDialog,您可以在 onCreateDialog 中执行此操作。但是这里我们有 onPrepareDialogBuilder... 那么 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(..., ...);
}