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

时间:2013-07-24 08:50:41

标签: android dialog-preference

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

通常你有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(..., ...);
}

0 个答案:

没有答案