как установить содержимое setSingleChoiceItems в onPrepareDialog?

Ребята, в onCreateDialog у меня есть это:

case DIALOG_REVIEW: {
    if (bundle.containsKey("POSITION")) {
    final int position = bundle.getInt("POSITION");
    ArrayList<String> alterNumbers = numbers.get(position);
    final String[] phoneNums = new String[alterNumbers.size()];
    for (int i = 0; i < alterNumbers.size(); i++) {
        phoneNums[i] = alterNumbers.get(i);
    }
    AlertDialog.Builder dialog = new AlertDialog.Builder(this);
    dialog.setTitle(names.get(position) + "'s number(s)");
    dialog.setSingleChoiceItems(phoneNums, 0,
        new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog,
                int which) {
            // get selected item and close the dialog
            String selectedNumber = phoneNums[which];
            updateUserSelectedNumber(position , selectedNumber);
            }
        });
    return dialog.create();
    }

, который работает и отлично.

НО обратите внимание на строку

dialog.setSingleChoiceItems(phoneNums, 0,
        new DialogInterface.OnClickListener() {

phoneNums, как предполагается, меняется каждый раз, когда диалог всплывает. Я переопределил метод onPrepareDialog, но не знаю, как присвоить ему новые значения. а также там нет setSingleChoiceItems.

вот мой метод onPrepareDialog

case DIALOG_REVIEW: {
    final int position = bundle.getInt("POSITION");
    ArrayList<String> alterNumbers = numbers.get(position);
    final String[] phoneNums = new String[alterNumbers.size()];
    for (int i = 0; i < alterNumbers.size(); i++) {
    phoneNums[i] = alterNumbers.get(i);
    }
    AlertDialog alertDialog = (AlertDialog) dialog;
    alertDialog.setTitle(names.get(position) + "'s number(s)");
    ???
    break;
}

Какое решение? заранее спасибо, ребята.

7
задан Varand Pezeshkian 27 January 2011 в 17:46
поделиться