AlertDialog de múltipla escolha com adaptador personalizado

Eu estou tentando criar um AlertDialog com opção de múltipla escolha. Eu tentei com osetMultiChoiceItems mas o que eu tenho é umArrayList<Category> e não umCharSequence então eu tentei com o adaptador.

O problema comsetAdapter é que quando eu seleciono um item, ele fecha a janela de diálogo. E o que eu quero é selecionar os itens e apertar o botão OK para ver quais itens foram selecionados.

AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Pick a color");
        ArrayAdapter<Category> catsAdapter = new ArrayAdapter<Category>(this, android.R.layout.select_dialog_multichoice,this.categories);
        builder.setAdapter(catsAdapter, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {

            }
        });
        builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialog, int which) {
                //do something  
               }                
        });;

        AlertDialog alert = builder.create();
        alert.show();

questionAnswers(3)

yourAnswerToTheQuestion