我创建了一个从首选项屏幕使用的自定义对话框。一切正常,除了一件事:我想根据内部检查的状态切换取消按钮的可见性。
通常你有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(..., ...);
}