AlertDialog wielokrotnego wyboru z niestandardowym adapterem

Próbuję utworzyć AlertDialog z opcją wielokrotnego wyboru. Próbowałem zsetMultiChoiceItems ale co mam toArrayList<Category> a nie aCharSequence więc spróbowałem z adapterem.

Problem zsetAdapter jest to, że kiedy wybieram jeden element, zamyka okno dialogowe. Chcę wybrać elementy, a następnie nacisnąć przycisk OK, aby zobaczyć, które elementy zostały wybrane.

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