1

設定画面から使用されるカスタム ダイアログを作成しました。内部チェックのステータスに基づいて [キャンセル] ボタンの表示を切り替えたいという 1 つのことを除いて、すべて正常に動作します。

通常、onPrepareDialog と onCreateDialog があり、onCreateDialog でこれを行うことができます。しかし、ここに onPrepareDialogBu​​ilder があります... では、onCreateDialogBu​​ilder はどこにあるのでしょうか? どこで次のようなことができますか

builder.setNegativeButton(null, null);

onPrepareDialogBu​​ilderの後? 内部チェックが失敗した場合に備えて [キャンセル] ボタンが必要なので、IN 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