設定画面から使用されるカスタム ダイアログを作成しました。内部チェックのステータスに基づいて [キャンセル] ボタンの表示を切り替えたいという 1 つのことを除いて、すべて正常に動作します。
通常、onPrepareDialog と onCreateDialog があり、onCreateDialog でこれを行うことができます。しかし、ここに onPrepareDialogBuilder があります... では、onCreateDialogBuilder はどこにあるのでしょうか? どこで次のようなことができますか
builder.setNegativeButton(null, null);
onPrepareDialogBuilderの後? 内部チェックが失敗した場合に備えて [キャンセル] ボタンが必要なので、IN 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(..., ...);
}