Закрытие окна AlertDialog - PullRequest
0 голосов
/ 15 мая 2011

Это может показаться простой проблемой, но я новичок в Android, поэтому, пожалуйста, потерпите меня.У меня есть следующий фрагмент кода, который отображает окно с предупреждением:

Builder pwBox = new AlertDialog.Builder(this);
    AlertDialog pwDialog;
    LayoutInflater mInflater = (LayoutInflater) this
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View pwView = mInflater.inflate(R.layout.passworddialog, null);

    Button btnSetPassword = (Button) pwView
            .findViewById(R.id.btnSetPassword);

    pwBox.setView(pwView);
    pwBox.setCancelable(false);
    pwBox.setTitle("New Password");
    pwDialog = pwBox.create();

    btnSetPassword.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            //pwDialog.dismiss(); <------ Problem Line
        }
    });

    pwDialog.show();

Все работает.Проблема в том, что у меня нет доступа к переменной "pwDialog", так как мне закрыть диалог?

Ответы [ 2 ]

1 голос
/ 15 мая 2011

Похоже, у вас должен быть доступ к вашей переменной pwDialog.Возможно, вам придется объявить его как окончательный.

final AlertDialog pwDialog = pwBox.create();
0 голосов
/ 15 мая 2011

Вы бы хотели что-то в этом роде:

private static final CommandWrapper DISMISS = new CommandWrapper(Command.NO_OP);

public static AlertDialog createDeletionDialog(final Context context,
    final String message, final String positiveLabel, final Command positiveCommand) {

  AlertDialog.Builder builder = new AlertDialog.Builder(context);
  builder.setCancelable(true);
  builder.setMessage(message);

  builder.setInverseBackgroundForced(true);
  builder.setPositiveButton(positiveLabel, new CommandWrapper(positiveCommand));
  builder.setNeutralButton("Cancel", DISMISS);
  return builder.create();
}
...