Como posso obter os resultados de um AlertDialog?

Estou usando um AlertDialog.Builder para exibir uma caixa de diálogo para solicitar ao usuário que digite uma senha. Em seguida, desejo salvar essa senha em uma preferência, mas não consigo descobrir como obter o resultado do método de entrada da caixa de diálogo de alerta. .

Aqui é essencialmente o que eu gostaria de poder fazer:

    String result;
    AlertDialog.Builder b = new AlertDialog.Builder(this);
    b.setTitle("Please enter a password");
    final EditText input = new EditText(this);
    b.setView(input);
    b.setPositiveButton("OK", new DialogInterface.OnClickListener()
    {
        @Override
        public void onClick(DialogInterface dialog, int whichButton)
        {
           //I get a compile error here, it wants result to be final.
           result = input.getText().toString();
        }
    });
    b.setNegativeButton("CANCEL", null);
    b.create().show();

No entanto, estou aberto a fazer algo comoshowDialog(int); e depois usando oonCreateDialog(int) método e, de alguma forma, definir o resultado e recebê-lo em outro método, mas não tenho idéia de como proceder na última part

questionAnswers(6)

yourAnswerToTheQuestion