setMultiChoiceItems()不显示项目

时间:2014-01-15 15:19:30

标签: android android-dialogfragment

我使用 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 个答案:

答案 0 :(得分:12)

问题是您有setMessagesetMultiChoiceListener。你只能拥有其中一个。试试这个:

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