setMultiChoiceItems() не показывает элементы

С DialogFragment чтобы показать диалог с несколькими элементами выбора, он показывает диалог, но без элементов нет флажков для выбора.

вот как я вызываю диалог:

    botAddMedicacion.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            DialogFragment fragAddMedic = new AnadirMedicacionFragment();
            fragAddMedic.show(getFragmentManager(), "addMedicacion");
        }
    });

и это AnadirMedicacionFragment код:

    final CharSequence[] items={".NET","J2EE","PHP"};

@Override
public Dialog onCreateDialog(Bundle savedInstanceState){

    medicSelec = new ArrayList();

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setMessage(R.string.anadir_medicacion);


    // elementos de la lista
    builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which, boolean isChecked) {

            if (isChecked) {
                medicSelec.add(which);
            } else if (medicSelec.contains(which)) {
                medicSelec.remove(Integer.valueOf(which));
            }

        }
    });

    // boton ok
    builder.setPositiveButton(R.string.anadir, new DialogInterface.OnClickListener(){
        @Override
        public void onClick(DialogInterface dialog, int which) {

        }
    });

    // boton cancelar
    builder.setNegativeButton(R.string.cancelar, new DialogInterface.OnClickListener(){
        @Override
        public void onClick(DialogInterface dialog, int which) {

        }
    });

    return builder.create();
}

список элементов передается в builder.setMultiChoiceItems(предметы, null[...]

dialog fragment multi choose

Кажется, это работает, но нет флажков или списка.

1 ответов


проблема в том, что у вас есть setMessage и setMultiChoiceListener. У вас может быть только один из них. Попробуйте это:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.anadir_medicacion);