4

実行時にAlertDialogのポジティブボタンを無効にする方法はありますか?たとえば、TextWatcher内からですか?

AlertDialog.Builder(this)
                    .setTitle(getString(R.string.createvfs))
                    .setView(newVSView_v11)
                    .setPositiveButton(getString(R.string.okay),
                            new DialogInterface.OnClickListener() {

                                @Override
                                public void onClick(DialogInterface dialog,
                                        int whichButton) {
                                }
                            })
                    .setNegativeButton(getString(R.string.cancel),
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog,
                                        int whichButton) {
                                    // Canceled.
                                }
                            }).show();
4

1 に答える 1

7

ダイアログを後で変更するには、ダイアログ自体への参照を取得する必要があるため、ビルダーを少し変更する必要がありますが、その後、好きなときに呼び出しAlertDialog.getButton()てボタンを有効または無効にすることができます。このようなもの...

//Use create() so you can get the instance back
AlertDialog dialog = AlertDialog.Builder(this)
                .setTitle(getString(R.string.createvfs))
                .setView(newVSView_v11)
                .setPositiveButton(getString(R.string.okay),
                        new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog,
                                    int whichButton) {
                            }
                        })
                .setNegativeButton(getString(R.string.cancel),
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int whichButton) {
                                // Canceled.
                            }
                        }).create();
//Then show it
dialog.show();

/* ...Sometime in the distance future... */
dialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(false);

実際にボタンを非表示にしたい場合は、少し難しくなります。setVisibility()ボタンを呼び出すと良い結果が得られるかどうか、現時点ではテストできません...

HTH

于 2012-04-25T22:06:54.360 に答える